我正在尝试创建可由我编写的 Windows 服务访问的架构和表,但我的服务无法访问它...
USE [tempdb]
GO
CREATE SCHEMA [blah]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [blah].[domains](
[id] [int] NOT NULL,
[name] [varchar](256) NOT NULL,
CONSTRAINT [PK_domains] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
一个非常简单的表..当我通过我的 Windows 服务尝试SELECT
它时,我得到:
System.Data.SqlClient.SqlException (0x80131904):对对象“域”、数据库“tempdb”、模式“blah”的 SELECT 权限被拒绝。
我尝试将我的服务帐户从 切换LocalService
到 ,NetworkService
但它给出了同样的结果。
我用于服务的连接字符串:
connectionString="Data Source=.\SQLEXPRESS;Database=tempdb;Integrated Security=True;MultipleActiveResultSets=True"
我还尝试创建一个新的登录名NT AUTHORITY\NETWORK SERVICE
,然后将一个用户NETWORK SERVICE
映射到该登录名,然后授予对blah
表的权限domains
,但仍然无法正常工作。
PS:当我将其作为普通可执行文件运行时,相同的代码能够访问该表,但在作为Service
.