Ошибка в SQL INI-файл установки сервера, чтобы разрешить подключение пользователям без прав администратора? - PullRequest
1 голос
/ 20 февраля 2020

Я пытаюсь выяснить, как отредактировать мой файл Configuration.ini, чтобы моя автоматическая установка SQL Server Express 2019 предоставила всем локальным пользователям доступ на чтение / запись к базе данных, которую я создаю в общей папке с именем экземпляр, который я создаю

(Это для приложения с первым кодом EF Core 3.1, если это имеет значение. Я использовал его с Sqlite некоторое время для пользовательских баз данных. Теперь я перехожу к SQL сервер с общей БД)

При моей текущей установке только мой Windows Администратор может подключиться к базе данных. Я даже не могу просматривать содержимое базы данных как обычный пользователь в Visual Studio SQL Server Explorer; Он видит это очень хорошо, но лишает меня доступа к его содержимому

Так ясно, что я что-то не так понял. Я думал, что настройка его на использование Integrated Security будет означать, что все авторизованные Windows пользователи могут подключаться, но нет.

Вот строка подключения, которую все используют внутри моего метода DbContext.OnConfiguring:

var  cs2 =  $"Server={Environment.MachineName}\\MYCOMPANY; Database = MyCompany.Data; Trusted_Connection = True";
ob.UseSqlServer(cs2);

И это мой файл Configuration.ini, который был автоматически создан установщиком SQL Server при его запуске. Я использовал это для установки экземпляра:

;SQL Server 2019 Configuration File
[OPTIONS]

IACCEPTPYTHONLICENSETERMS="True"
IACCEPTSQLSERVERLICENSETERMS="True"
ACTION="Install"
ROLE="AllFeatures_WithDefaults"
IACCEPTROPENLICENSETERMS="True"
SUPPRESSPRIVACYSTATEMENTNOTICE="True"
ENU="True"
QUIET="False"
QUIETSIMPLE="True"
; UIMODE="Normal"
UpdateEnabled="False"
USEMICROSOFTUPDATE="False"
SUPPRESSPAIDEDITIONNOTICE="True"
UpdateSource="MU"
FEATURES=SQLENGINE,REPLICATION,SNAC_SDK
HELP="False"
INDICATEPROGRESS="False"
X86="False"
INSTANCENAME="MYCOMPANY"
INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"
INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"
INSTANCEID="MYCOMPANY"
SQLTELSVCACCT="NT Service\SQLTELEMETRY$MYCOMPANY"
SQLTELSVCSTARTUPTYPE="Automatic"
INSTANCEDIR="C:\Program Files\Microsoft SQL Server"
AGTSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE"
AGTSVCSTARTUPTYPE="Disabled"
COMMFABRICPORT="0"
COMMFABRICNETWORKLEVEL="0"
COMMFABRICENCRYPTION="0"
MATRIXCMBRICKCOMMPORT="0"
SQLSVCSTARTUPTYPE="Automatic"
FILESTREAMLEVEL="0"
SQLMAXDOP="0"
ENABLERANU="True"
SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"
SQLSVCACCOUNT="NT Service\MSSQL$GELSIGHT"
SQLSVCINSTANTFILEINIT="True"
SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS"
SQLTEMPDBFILECOUNT="1"
SQLTEMPDBFILESIZE="8"
SQLTEMPDBFILEGROWTH="64"
SQLTEMPDBLOGFILESIZE="8"
SQLTEMPDBLOGFILEGROWTH="64"
ADDCURRENTUSERASSQLADMIN="True"
TCPENABLED="0"
NPENABLED="0"
BROWSERSVCSTARTUPTYPE="Automatic"
SQLMAXMEMORY="2147483647"
SQLMINMEMORY="0"

(Если не очевидно, что я заменил свое фактическое название компании на «MYCOMPANY»)

Есть ли какой-то другой параметр, которым я должен быть использовать в этом файле .INI, чтобы дать всем Windows пользователям, по крайней мере, подключение / чтение / запись к базе данных?

Я надеюсь, что все пользователи не будут использовать выделенную учетную запись / пароль, потому что я хочу, чтобы только обычные администраторы Windows могли создавать / переносить базу данных.

1 Ответ

1 голос
/ 11 марта 2020

Во-первых, вы не сделали ничего плохого в установке. По замыслу, вы не можете добавлять пользователей на серверную платформу SQL на этапе установки, принимайте администраторов. Чтобы добавить пользователей для подключения к базам данных, необходимо выполнить вход в систему, а после создания входа необходимо создать пользователей для указанных c баз данных.

Поскольку вы только что установили сервер SQL, базы данных отсутствуют. предоставить доступ, кроме системных баз данных.

Лучшее решение, которое я могу себе представить, - создать триггер «создания базы данных».

Сначала вы создаете имя входа на основе группы безопасности AD, в которую добавляются все пользователи, которым необходим доступ. Во-вторых, вы создаете триггер для события создания базы данных и предоставляете роль участника, то есть, читатель данных для имени входа, созданного на первом шаге.

Это обеспечит доступ всех пользователей (в упомянутой группе безопасности) ко всем созданным базам данных. , Я не знаю, активирован ли триггер при создании базы данных с помощью резервной копии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...