Как предоставить 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
Другие вопросы по тегам