Как предоставить SQL доступ к учетной записи NETWORK SERVICE?
Я пытаюсь создать схему и таблицу, которые доступны для службы 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): Отказано в разрешении SELECT для объекта "домены", базы данных "tempdb", схемы "бла".
Я пытался переключить свою учетную запись службы с LocalService
в NetworkService
но это дает то же самое.
Строка подключения, которую я использую для своего сервиса:
connectionString="Data Source=.\SQLEXPRESS;Database=tempdb;Integrated Security=True;MultipleActiveResultSets=True"
Я также пытался создать новые логины для NT AUTHORITY\NETWORK SERVICE
затем пользователь NETWORK SERVICE
сопоставляется с этим логином, а затем дает разрешение на blah
так же как domains
стол, но все еще не работает.
PS: тот же код был в состоянии получить доступ к таблице, когда я запускал ее как обычный исполняемый файл, но не когда он выполнялся как Service
,
1 ответ
Мы обсудили несколько подходов в комментариях, но я думаю, что вам лучше всего:
- Создать учетную запись Windows (или использовать существующую)
- Настройте службу для работы под этой учетной записью Windows.
- Добавьте учетную запись Windows как учетную запись SQL
- Предоставьте необходимые разрешения для этого входа в SQL