sql >> Database teknologi >  >> RDS >> Sqlserver

Skjul SQL-database fra Management Studio

Efter timers forsøg på at finde ud af, hvordan man opretter en brugerkonto, som kun har adgang til 1 DB og kun kan se den DB. Jeg tror, ​​jeg fandt ud af det!!!!

  1. Opret en brugerkonto (sørg for, at den ikke er knyttet til nogen database, ellers får du den endelige fejlmeddelelse 15110, niveau 16, tilstand 1 og bemærk foreslået løsning )

    USE [master]
    GO
    CREATE LOGIN [us4] 
        WITH PASSWORD=N'123', 
        DEFAULT_DATABASE=[master], 
        CHECK_EXPIRATION=OFF, 
        CHECK_POLICY=OFF
    
  2. Højreklik på den øverste del af SQL (SQLSERVER Name)>Properties>Permissions>Klik på user account , og vælg Deny for at se databaser.

    use [master]
    GO
    DENY VIEW ANY DATABASE TO [us4]
    
  3. Højreklik på den nyoprettede DB, Egenskaber, Filer, og skift ejeren til den nyoprettede konto.(vigtig bemærkning :ALTER ROLE [db_owner] ADD MEMBER [us4] virker ikke )

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

På dette tidspunkt, når brugeren logger ind, vil han se Master,tempdb og vil også se den nye DB, som han er en DB-ejer af.. Du vil måske gå til Tools>Option og aktiverede muligheden for at skjule systemobjekter, så du ikke viser master,tempdb osv. Du skal muligvis også have SP1, hvis denne mulighed ikke virker

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

forslag til løsning til Msg 15110: for at løse ovenstående fejl skal du blot slette brugeren fra databasesikkerhedsknuden og prøve igen

Håber det hjælper...

Nikhil



  1. Sådan tilføjer du en opslagskontrol til en formular i Access 2016

  2. Kan ikke bruge utf8mb4 tegnsæt med CloudSQL på AppEngine Python

  3. Hvordan bruger man ilike sqlalchemy på postgresql array felt?

  4. Vælg den nærmeste numeriske værdi med MySQL-forespørgsel