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.