SQL Server 2008: как предоставить привилегии имени пользователя? - PullRequest
95 голосов
/ 22 октября 2010

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

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

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

Ответы [ 3 ]

132 голосов
/ 22 октября 2010

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

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

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

Существует также роль db_datawriter, которая предоставляет вашему пользователю все права на ЗАПИСЬ (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

57 голосов
/ 22 октября 2010

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

use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go
18 голосов
/ 22 октября 2010

вроде следующего. Это сделает владельца базы данных пользователя.

EXEC sp_addrolemember N'db_owner', N'USerNAme'
...