Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर - लॉग इन करने के लिए सभी डेटाबेस तक पठन पहुँच कैसे प्रदान करें?

एक तरीका यह होगा कि SSMS में क्वेरी मेनू पर "पाठ के लिए परिणाम" सेट करें और फिर नीचे निष्पादित करें।

यह वास्तव में परिवर्तन नहीं करता है लेकिन आपके लिए समीक्षा और निष्पादित करने के लिए एक स्क्रिप्ट तैयार करता है।

SET NOCOUNT ON;

DECLARE @user_name    SYSNAME
        , @login_name SYSNAME;

SELECT @user_name = 'user_name',
       @login_name = 'login_name'

SELECT '
    USE ' + QUOTENAME(NAME) + ';

    CREATE USER ' + QUOTENAME(@user_name)
       + ' FOR LOGIN ' + QUOTENAME(@login_name)
       + ' WITH DEFAULT_SCHEMA=[dbo];

    EXEC sys.sp_addrolemember
      ''db_datareader'',
      ''' + QUOTENAME(@user_name) + ''';

    EXEC sys.sp_addrolemember
      ''db_denydatawriter'',
      '''
       + QUOTENAME(@user_name) + '''; 

GO
'
FROM   sys.databases
WHERE  database_id > 4
       AND state_desc = 'ONLINE' 

या आप sys.sp_MSforeachdb . देख सकते हैं यहाँ के रूप में या आरोन बर्ट्रेंड का उन्नत संस्करण यहां

यदि आप इसे चलाते समय सभी वर्ण नहीं देख रहे हैं, तो टेक्स्ट के लिए क्वेरी विकल्प खोलें और 'प्रत्येक कॉलम में प्रदर्शित वर्णों की अधिकतम संख्या' के लिए सेटिंग जांचें। सुनिश्चित करें कि यह सभी वर्णों को प्रदर्शित करने के लिए पर्याप्त बड़े मान पर सेट है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. समूहीकरण के साथ कई पंक्तियों को एक पाठ स्ट्रिंग में संयोजित करें

  2. अधिकतम (गिनती ()) खोजने के लिए SQL में उप-प्रश्नों का उपयोग करना

  3. कॉलम =NULL SQL सर्वर में त्रुटि क्यों नहीं फेंकता है?

  4. अनुक्रमित विचारों में MAX() कुल क्यों नहीं हो सकता है?

  5. BitConverter के साथ SQL सर्वर varbinary bigint.ToInt64 मान भिन्न हैं