SQL Server 2008: Bir kullanıcı adına nasıl ayrıcalıklar verebilirim?


102

SQL Server kimlik doğrulaması aracılığıyla bir ODBC bağlantısı kurabilmem gerekiyor.

SSMS'de bir kullanıcıya belirli bir veritabanı üzerinde TÜM HAKLARA sahip olması için nasıl izin verebilirim?

Bunu SSMS ile grafiksel olarak yapmanın bir yolu var mı?

Yanıtlar:


139

Kullanıcınıza tüm okuma izinlerini vermek istiyorsanız, şunları kullanabilirsiniz:

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

Bu db_datareader, o kullanıcıya varsayılan rolü (tüm tablolarda okuma izni) ekler .

Ayrıca db_datawriter, kullanıcınıza tüm tablolarda tüm YAZMA izinlerini (INSERT, UPDATE, DELETE) veren bir rol vardır :

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

Daha ayrıntılı olmanız gerekiyorsa, şu GRANTkomutu kullanabilirsiniz :

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

ve benzeri - belirli tablolarda ayrıntılı olarak SEÇME, EKLEME, GÜNCELLEME, SİLME izni verebilirsiniz.

Tüm bunlar , SQL Server için MSDN Books Online'da çok iyi belgelenmiştir .

Ve evet, bunu grafiksel olarak da yapabilirsiniz - SSMS'de veritabanınıza gidin, ardından Security > Usersizin vermek istediğiniz kullanıcıya sağ tıklayın, ardından Propertiesadn altta "Veritabanı rol üyelikleri" ni görürsünüz ve kullanıcıdan db rollerine.

alternatif metin


bir şekilde SSMS'deki Güvenlik ağacında Kullanıcılar düğümüm yok, yalnızca Oturum Açma Bilgileri ve Kimlik Bilgileri - bunun dışında, sp_addrolemember'ın çalışması için kullanıcının söz konusu veritabanına eşlenmesi gerekiyor, aksi takdirde "user ... veritabanında var "hatası verildi ( stackoverflow.com/questions/7232559/… - kabul edilen yanıtın açıklamalarına bakın) - Kullanıcının Oturum Açma nesnesinin Özellikleri aracılığıyla kullanıcı
veritabanı eşlemesi yapabilirim

@marc_s, SSMS kullanarak belirli bir tabloyla ilgili izin nasıl verilir?
CAD


61

Gerçekten onların TÜM haklarına sahip olmasını istiyorsanız:

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

18

Aşağıdaki gibi. Kullanıcı veritabanını sahibi yapacak.

EXEC sp_addrolemember N'db_owner', N'USerNAme'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.