2016-07-29 2 views
0

SQL Server Management Studioでユーザーマッピングが設定されているユーザーを「ReportServer」データベースにのみアクセスできるように設定しています。デフォルトのデータベースの表示/アクセスを制限する

私はMS Wordの経由私のSQL Serverに接続すると、私はに接続するデータベースに関する次のオプションを与えています:

enter image description here

私は、このユーザーがアクセス権を持つようにしたい、あるいはことはありませんmaster、tempdb、またはmsdbデータベースを見ることができますが、このユーザーのユーザーマッピングでは選択されていません。ユーザーがこれらのデータベースを参照できないように設定するにはどうすればよいですか?

答えて

0

使用してビューをDENY ..

DENY VIEW ANY DATABASE TO testuser; 

手順は、一般的に含める。..既定のデータベースと
1.Createログインすべてのデータベースでそのログインの
2.createユーザー
3 .Denyビュー

DENY VIEW ANY DATABASE TO testuser; 

STEP1:
//デフォルトのデータベースとログインを作成

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

STEP2:すべてのデータベースで
2.createユーザー..今

use testdb 
create user username for loginname 

あなたは、そのユーザーに権限を割り当てることができます既読では、このユーザーには1つのデータベースのみが表示されます..

ステップ3:

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

あなたはaleadyあなたは以下のように、そのユーザーのデフォルトのログインを変更することができlogin..Then既存している場合..

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

参考文献:
https://www.mssqltips.com/sqlservertip/2995/how-to-hide-sql-server-user-databases-in-sql-server-management-studio/

+0

こんにちはそこ。これはmsdbを取り除くのを助けました。マスターとtempdbはまだそこにいます。あなたは私が非表示にしたいすべてのデータベースでそのコードを繰り返す必要があると述べたが、SQL Studioはmaster db中にしか使用できないと私に伝えている。 – LeChuck

+0

は、マスターDBにする必要があります。TempDBの場合は、デフォルトではすべてのユーザーがlogin.Soを作成する必要はありません、メールマージで使用できるすべてのユーザーのためのWindowsグループを作成し、 。 – TheGameiswar

関連する問題