SQL Server 2008: як надати привілеї імені користувача?


102

Мені потрібно мати можливість встановити ODBC-з'єднання через аутентифікацію SQL Server.

Як в SSMS я можу надати дозвіл користувачеві мати можливість ВСІ ПРАВА на певній базі даних?

є спосіб це зробити графічно за допомогою SSMS?

Відповіді:


139

Якщо ви хочете надати користувачеві всі права на читання, ви можете використовувати:

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 Books Online для SQL Server .

І так, ви також можете це зробити графічно - в SSMS перейдіть до своєї бази даних, потім Security > Usersклацніть правою кнопкою миші того користувача, якому ви хочете надати дозволи, а потім Propertiesвнизу ви побачите "Членство в ролі бази даних", де ви можете додати користувачеві ролі db.

alt текст


я чомусь не маю вузлів Користувача у дереві безпеки в SSMS, тільки входи та дані - крім цього, для того, щоб sp_addrolemember працював, користувач повинен бути відображений у відповідній базі даних, інакше "користувач ... не існують у базі даних "наводиться помилка ( stackoverflow.com/questions/7232559/… - див. коментарі до прийнятої відповіді) - я міг би користувачу-db відобразити через Властивості об'єкта входу користувача
hello_earth

@marc_s, Як надати дозвіл, пов’язаний із певною таблицею за допомогою SSMS?
CAD



18

Як і наступне. Це зробить власник бази даних користувача.

EXEC sp_addrolemember N'db_owner', N'USerNAme'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.