私が作成した 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
非常に単純なテーブル.. SELECT
Windows サービス経由で試してみると、次のようになります。
System.Data.SqlClient.SqlException (0x80131904): オブジェクト 'domains'、データベース '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
.