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!!!!
-
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
-
Højreklik på den øverste del af SQL (SQLSERVER Name)>
Properties
>Permissions
>Klik påuser account
, og vælgDeny
for at se databaser.use [master] GO DENY VIEW ANY DATABASE TO [us4]
-
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