sql >> Databáze >  >> RDS >> Sqlserver

SQL Server – Jak udělit přihlášení ke VŠEM databázím přístup ke čtení?

Jedním ze způsobů by bylo nastavit "Výsledky na text" v nabídce dotazu v SSMS a poté provést níže uvedené.

Ve skutečnosti neprovede změnu, ale vygeneruje skript, který můžete zkontrolovat a spustit.

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' 

Nebo se můžete podívat na sys.sp_MSforeachdb jako zde nebo vylepšená verze Aarona Bertranda zde

Pokud se vám při spuštění nezobrazují všechny znaky, otevřete Možnosti dotazu pro text a zkontrolujte nastavení „Maximální počet znaků zobrazených v každém sloupci“. Ujistěte se, že je nastavena na dostatečně velkou hodnotu, aby se zobrazily všechny znaky.



  1. Jak převést seznam oddělený čárkami na řádky na serveru SQL Server

  2. Převeďte minuty do formátu HH24:MI

  3. Jak propojit databázi s Amazon VPC

  4. Nepodařilo se připojit k mysql na 127.0.0.1:3306 s uživatelem root přístup odepřen pro uživatele 'root'@'localhost' (pomocí hesla:YES)