sql >> データベース >  >> RDS >> Sqlserver

ManagementStudioからSQLデータベースを非表示にする

    1つのDBにしかアクセスできず、そのDBしか表示できないユーザーアカウントを作成する方法を何時間もかけて理解しようとした後。私はそれを理解したと思います!!!!

    1. ユーザーアカウントを作成します(データベースにマップされていないことを確認してください。マップされていない場合、最終エラーメッセージ15110、レベル16、状態1が発生し、提案された解決策に注意してください

      USE [master]
      GO
      CREATE LOGIN [us4] 
          WITH PASSWORD=N'123', 
          DEFAULT_DATABASE=[master], 
          CHECK_EXPIRATION=OFF, 
          CHECK_POLICY=OFF
      
    2. SQL(SQLSERVER名)>Propertiesの上部を右クリックします。>Permissions>user accountをクリックします 、Denyを選択します データベースを表示します。

      use [master]
      GO
      DENY VIEW ANY DATABASE TO [us4]
      
    3. 新しく作成された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



    1. TIME_FORMAT()の例– MySQL

    2. 列名を持つ複数の列の最大値?

    3. 郵便配達員と一緒にファイルをLaravelAPIに送信します

    4. get_result()mysqlndが有効になっていても機能しません