2016-07-29 7 views
0

Ich habe einen Benutzer in SQL Server Management Studio eingerichtet, dessen Benutzerzuordnung festgelegt ist, sodass sie nur auf die Datenbank 'ReportServer' zugreifen können.Einschränken der Benutzeransicht/Zugriff auf die Standarddatenbanken

Als ich zu meinem SQL Server über MS Word verbinden, bin ich die folgenden Optionen für Datenbanken verbinden:

enter image description here

Ich will nicht diesen Benutzer haben Zugriff auf oder sogar sein Kann die Master-, Tempdb- oder Msdb-Datenbanken sehen, und ich habe sie nicht in der Benutzerzuordnung für diesen Benutzer ausgewählt. Wie kann ich es einrichten, damit der Benutzer diese Datenbanken nicht sehen kann?

Antwort

0

Verwenden Ansicht DENY ..

DENY VIEW ANY DATABASE TO testuser; 

Schritte umfassen im Allgemeinen ..
1.Erstellen Login mit Standard-Datenbank
2.Create Benutzer für das Login in allen Datenbanken
3 .Deny Ansicht

DENY VIEW ANY DATABASE TO testuser; 

Schritt 1:
// erstellen Login mit Standard-Datenbank

1.USE [master] 
GO 
CREATE LOGIN loginame FROM WINDOWS WITH DEFAULT_DATABASE='testdb' 
GO 

Schritt 2:
2.Create Benutzer in allen Datenbanken ..

use testdb 
create user username for loginname 

Jetzt können Sie Berechtigungen zuweisen, um diesen Benutzer wie lesen, schreiben ... und standardmäßig wird diesem Benutzer nur eine Datenbank angezeigt.

Schritt 3:

DENY VIEW ANY DATABASE TO testuser;--this should be repeated in all databases which you wish to hide from user.. 

wenn Sie aleady vorhandene haben login..Then Sie Standard-Login für den Benutzer wie unten ..

Exec sp_defaultdb @loginame='login', @defdb='testdb' 

Referenzen ändern können:
https://www.mssqltips.com/sqlservertip/2995/how-to-hide-sql-server-user-databases-in-sql-server-management-studio/

+0

Hallo Dort. Dies half, die msdb loszuwerden. aber der Master und Tempdb sind immer noch da. Du hast erwähnt, dass ich diesen Code in allen Datenbanken, die ich verstecken möchte, wiederholen sollte, aber sql studio sagt mir, dass ich ihn nur in der Master-db verwenden kann. – LeChuck

+0

für die Anmeldung, sollte es Master-DB sein. Für TempDB müssen Sie nicht anmelden, standardmäßig haben alle Benutzer login.So empfehle ich Windows-Gruppe für alle Benutzer erstellen, die Sie mit Seriendruck verwenden können und machen Sie das Zeug auf diesem . – TheGameiswar

Verwandte Themen