2010-07-07 9 views
10

मैं चाहता हूं कि उपयोगकर्ताओं के समूह को SQL सर्वर (मैं SS2008 का उपयोग कर रहा हूं) पर सभी डेटाबेस पर सभी तालिकाओं और दृश्यों तक केवल पढ़ने के लिए पहुंच प्राप्त करूं। मैं चाहता हूं कि उन उपयोगकर्ताओं को सभी भावी तालिकाओं तक केवल पढ़ने के लिए पहुंच हो और देखें।उपयोगकर्ताओं को सभी डेटाबेसों को केवल पढ़ने के लिए पहुंच प्रदान करने के लिए

आप इसे कैसे सेट अप करेंगे?

उत्तर

11

db_datareader भूमिका

उदाहरण

exec sp_addrolemember 'db_datareader',YourLogin 

जानकारी db_datareader बारे में उपयोगकर्ता को जोड़ने: http://msdn.microsoft.com/en-us/library/ms188629(SQL.90).aspx

+3

यह सभी डेटाबेसों के लिए एक डेटाबेस तक केवल पढ़ने के लिए पहुंच प्रदान करता है। आपको प्रत्येक डेटाबेस के लिए यह करना होगा। –

0

तुम बस में से प्रत्येक में db_datareader डेटाबेस भूमिका के लिए उपयोगकर्ताओं को जोड़ने के लिए सक्षम होना चाहिए डेटाबेस। आप डेटाबेस के माध्यम से लूप के लिए एक स्क्रिप्ट लिख सकते हैं और यह आपके लिए कर सकते हैं।

1
DECLARE @dbname VARCHAR(50) 
DECLARE @statement NVARCHAR(max) 
DECLARE db_cursor CURSOR 

LOCAL FAST_FORWARD 
FOR SELECT name FROM MASTER.dbo.sysdatabases OPEN db_cursor 
    FETCH NEXT FROM db_cursor INTO @dbname 
WHILE @@FETCH_STATUS = 0 
BEGIN 
    /* This sentence will be executed to gran the privileges. */ 
    SELECT @statement = 'use ['[email protected]+']; '+'EXEC sp_addrolemember N''db_datareader'', N''userPeter'''; 
    EXEC sp_executesql @statement 
    FETCH NEXT FROM db_cursor INTO @dbname 
END 

userPeter पर दिखाई देने वाले स्थान में आपको अपना उपयोगकर्ता नाम लिखना होगा।

संबंधित मुद्दे

 संबंधित मुद्दे