SQL Server 2008: как я могу предоставить привилегии для имени пользователя?

Мне нужно установить соединение ODBC с помощью проверки подлинности SQL Server.

В SSMS, как мне разрешить пользователю иметь ВСЕ ПРАВА в конкретной базе данных?

Есть ли способ сделать это графически с помощью SSMS?

Ответ 1

Если вы хотите предоставить своим пользователям все права на чтение, вы можете использовать:

EXEC sp_addrolemember N'db_datareader', N'your-user-name'

Это добавляет к этому пользователю роль по умолчанию db_datareader (разрешение на чтение для всех таблиц).

Также существует роль db_datawriter, которая дает вашим пользователям все разрешения WRITE (INSERT, UPDATE, DELETE) во всех таблицах:

EXEC sp_addrolemember N'db_datawriter', N'your-user-name'

Если вам нужно быть более подробным, вы можете использовать команду GRANT:

GRANT SELECT, INSERT, UPDATE ON dbo.YourTable TO YourUserName
GRANT SELECT, INSERT ON dbo.YourTable2 TO YourUserName
GRANT SELECT, DELETE ON dbo.YourTable3 TO YourUserName

и т.д. - вы можете грамотно предоставить разрешения SELECT, INSERT, UPDATE, DELETE для определенных таблиц.

Все это очень хорошо документировано в электронной почте MSDN для SQL Server.

И да, вы также можете сделать это графически - в SSMS, перейдите в свою базу данных, затем Security > Users, щелкните правой кнопкой мыши на этом пользователе, которому вы хотите дать разрешения, затем Properties adn внизу видите "Членство в роли роли данных", где вы можете добавить пользователя в роли db.

alt text

Ответ 2

Если вы действительно хотите, чтобы у них были ВСЕ права:

use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go

Ответ 3

Как показано ниже. Это сделает владельца базы данных пользователя.

EXEC sp_addrolemember N'db_owner', N'USerNAme'