Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Ukryj bazę danych SQL w Management Studio

Po wielu godzinach prób wymyślenia, jak utworzyć konto użytkownika, które ma dostęp tylko do 1 DB i widzi tylko tę DB. Myślę, że to rozgryzłem!!!!

  1. Utwórz konto użytkownika (upewnij się, że nie jest ono zmapowane do żadnej bazy danych, w przeciwnym razie otrzymasz komunikat o błędzie końcowym 15110, poziom 16, stan 1 i zanotuj proponowane rozwiązanie )

    USE [master]
    GO
    CREATE LOGIN [us4] 
        WITH PASSWORD=N'123', 
        DEFAULT_DATABASE=[master], 
        CHECK_EXPIRATION=OFF, 
        CHECK_POLICY=OFF
    
  2. Kliknij prawym przyciskiem myszy w górnej części SQL (nazwa serwera SQL)>Properties>Permissions>Kliknij user account i wybierz Deny do przeglądania baz danych.

    use [master]
    GO
    DENY VIEW ANY DATABASE TO [us4]
    
  3. Kliknij prawym przyciskiem myszy nowo utworzoną bazę danych, Właściwości, Pliki i zmień właściciela na nowo utworzone konto.(ważna uwaga :ALTER ROLE [db_owner] ADD MEMBER [us4] nie działa )

    USE [dbname]
    GO
    EXEC dbo.sp_changedbowner @loginame = N'us4', @map = false
    

W tym momencie, gdy użytkownik się zaloguje, zobaczy Master,tempdb, a także nową bazę danych, której jest właścicielem. Możesz przejść do Tools>Option i włączono opcję ukrywania obiektów systemowych, aby nie pokazywać wzorca, tempdb itp. Możesz również potrzebować dodatku SP1, jeśli ta opcja nie działa

Msg 15110, Level 16, State 1, Line 1
The proposed new database owner is already a user or aliased in the database.

proponowane rozwiązanie dla Msg 15110: aby rozwiązać powyższy błąd, po prostu usuń użytkownika z węzła bezpieczeństwa bazy danych i spróbuj ponownie

Mam nadzieję, że to pomoże...

Nikhil



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zinterpretuj zakleszczenie i napraw je

  2. Zamiana niektórych wierszy na kolumny w SQL Server 2008

  3. Zwracanie uprawnień do tabeli z serwera połączonego w programie SQL Server (przykłady T-SQL)

  4. SQL:Wybierz 3 najlepsze rekordy + Suma ilości

  5. Dlaczego otrzymuję te różne wyniki z dwóch zapytań SQL?