SQL Server 2008: bagaimana cara memberikan hak istimewa ke nama pengguna?

102

Saya harus dapat membuat sambungan ODBC melalui otentikasi SQL Server.

Di SSMS, bagaimana cara memberikan izin kepada pengguna untuk dapat memiliki SEMUA HAK pada database tertentu?

apakah ada cara untuk melakukan ini secara grafis dengan SSMS?

l --''''''--------- '' '' '' '' '' ''
sumber

Jawaban:

139

Jika Anda ingin memberi pengguna Anda semua izin baca, Anda dapat menggunakan:

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

Itu menambahkan db_datareaderperan default (izin baca di semua tabel) ke pengguna itu.

Ada juga db_datawriterperan - yang memberi pengguna Anda semua izin TULIS (INSERT, UPDATE, DELETE) di semua tabel:

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

Jika Anda perlu lebih terperinci, Anda dapat menggunakan GRANTperintah:

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

dan seterusnya - Anda dapat memberikan izin SELECT, INSERT, UPDATE, DELETE secara terperinci pada tabel tertentu.

Ini semua didokumentasikan dengan sangat baik di MSDN Books Online for SQL Server .

Dan ya, Anda juga dapat melakukannya secara grafis - di SSMS, buka database Anda, lalu Security > Usersklik kanan pada pengguna yang ingin Anda beri izin, lalu Propertiesdi bagian bawah Anda akan melihat "Keanggotaan peran database" tempat Anda dapat menambahkan peran pengguna ke db.

teks alt

marc_s
sumber
entah bagaimana saya tidak memiliki node Pengguna di pohon Keamanan di SSMS, hanya Login & Kredensial - selain itu, agar sp_addrolemember berfungsi, pengguna harus dipetakan ke database yang dimaksud, jika tidak, "pengguna ... tidak ada dalam database "kesalahan diberikan ( stackoverflow.com/questions/7232559/… - lihat komentar untuk jawaban yang diterima) - saya bisa untuk pemetaan user-db melalui Properti objek Login pengguna
hello_earth
@marc_s, Bagaimana cara memberikan izin terkait tabel tertentu menggunakan SSMS?
CAD
1
@ Chathuranga: baca dokumen yang sangat bagus dan tersedia secara gratis!
marc_s
61

Jika Anda benar-benar ingin mereka memiliki SEMUA hak:

use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go
Joe Stefanelli
sumber
18

Seperti berikut ini. Ini akan membuat pemilik database pengguna.

EXEC sp_addrolemember N'db_owner', N'USerNAme'
SQLMenace
sumber