1つのDBにしかアクセスできず、そのDBしか表示できないユーザーアカウントを作成する方法を何時間もかけて理解しようとした後。私はそれを理解したと思います!!!!
-
ユーザーアカウントを作成します(データベースにマップされていないことを確認してください。マップされていない場合、最終エラーメッセージ15110、レベル16、状態1が発生し、提案された解決策に注意してください )
USE [master] GO CREATE LOGIN [us4] WITH PASSWORD=N'123', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
-
SQL(SQLSERVER名)>
Properties
の上部を右クリックします。>Permissions
>user account
をクリックします 、Deny
を選択します データベースを表示します。use [master] GO DENY VIEW ANY DATABASE TO [us4]
-
新しく作成されたDB、プロパティ、ファイルを右クリックし、所有者を新しく作成されたアカウントに変更します(重要な注意事項 :
ALTER ROLE [db_owner] ADD MEMBER [us4]
機能しません )USE [dbname] GO EXEC dbo.sp_changedbowner @loginame = N'us4', @map = false
この時点で、ユーザーがログインすると、Master、tempdbが表示され、DB所有者である新しいDBも表示されます。Tools>Option
に移動することをお勧めします。 マスター、tempdbなどを表示しないようにシステムオブジェクトを非表示にするオプションを有効にしました。このオプションが機能しない場合は、SP1も必要になる場合があります
Msg 15110, Level 16, State 1, Line 1
The proposed new database owner is already a user or aliased in the database.
メッセージ15110に対して提案されたソリューション: 上記のエラーを解決するには、データベースセキュリティノードからユーザーを削除して、再試行してください
お役に立てば幸いです...
Nikhil