SQL-запрос для предоставления базы данных авторизации для нескольких входов

Мне нужно предоставить доступ к определенной базе данных для двух имен входа, но я не могу найти правильный запрос, следующий - неправильный запрос, если кто-то может помочь мне с правильным, который будет полезен

ALTER AUTHORIZATION ON DATABASE::<DBName> TO {[USER1] AND [USER2]} ;

1 ответ

Я не знаю, с какой базой данных вы работаете. Я делал аналогичную работу для БД SQL Azure. Во-первых, вам нужно создать логин и пользователя на уровне SQL-сервера:

CREATE LOGIN someLogin WITH password='<Password>';
CREATE USER someUserName FROM LOGIN someLogin ;
GO

Во-вторых, назначьте роль пользователю на уровне сервера SQL:

EXEC sp_addrolemember 'dbmanager', 'someLogin';
EXEC sp_addrolemember 'loginmanager', 'someLogin ';
GO

После этого вам нужно создать базу данных и пользователя для нее:

CREATE DATABASE SomeDB;
GO

Наконец, вы можете создать несколько пользователей на уровне базы данных и назначить им роли. Для этого вам нужно выполнить запрос в контексте базы данных, созданной выше:
CREATE USER [someDBUserName] FOR LOGIN [someLogin];
GO

При необходимости вы можете назначить роли для этого пользователя:

EXEC sp_addrolemember 'db_datareader', 'someDBUserName';
GO

Для SQL AZURE доступны следующие роли уровня базы данных:
db_owner, db_accessadmin, db_datareader, db_datawriter, db_ddladmin,db_securityadmin, db_backupoperator, db_denydatareader, db_denydatawriter.

Другие вопросы по тегам