none
特定のテーブルのみ参照可能なユーザーの作成 RRS feed

  • 質問

  • SQL Server 2008 Standardを使用しております対象のDB(DB_Aとする)にテーブルが10個あり中の

    1個(TB_Zとする)にのみ参照権限を付与したユーザーを作成したいのですが、実現できませんでした。

    対応方法をアドバイスいただけませんでしょうか。

    [試した内容1]
    ・セキュリティ - ログインからログインユーザー生成(LU_Cとする)
     規定のデータベースは:DB_A
     ユーザーマッピング:DB_A

    ・DB_A - セキュリティ - ユーザー - LU_C
     ロールメンバー:db_datareader

    ※結果
     テーブルすべてにSELECTが可能


    [試した内容2]
    ・セキュリティ - ログインからログインユーザー生成(LU_Cとする)
     規定のデータベースはDB_A
     ユーザーマッピング:DB_A

    ・DB_A - セキュリティ - ユーザー - LU_C
     ロールメンバー:db_denydatareader

    ・DB_A - テーブル - TB_B
     テーブルへの選択:許可
     スキーマへの選択:許可

    ※結果
     対象テーブルにselectを発行すると
     「拒否されました」といわれる

    2013年3月1日 9:55

回答

  • こんにちは、dgi dgi dgi さん
    フォーラムオペレータの佐伯 玲 です。

    GRANT文を使用してオブジェクト毎に権限を設定する方法ではいかがでしょうか?
    ユーザーマッピングでDatabaseを指定後にGRANT文のクエリを発行して該当のユーザーに対するテーブルのSELECT権限を付与すればそのDatabase内でも権限を付与したテーブルにのみSELECT権限がある状態になるかと思います。

    GRANT (オブジェクトの権限の許可) (Transact-SQL)
    http://msdn.microsoft.com/ja-jp/library/ms188371(v=sql.100).aspx

    使用例」にある「A. テーブルの SELECT 権限を許可する」が丁度参考になるのではないかと思います。


    少しでも参考になりましたら幸いです。
    宜しくお願い致します。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレータ 佐伯 玲


    • 編集済み 佐伯玲 2013年3月4日 7:59
    • 回答の候補に設定 佐伯玲 2013年3月5日 0:47
    • 回答としてマーク 佐伯玲 2013年3月7日 6:12
    2013年3月4日 7:56

すべての返信

  • こんにちは、dgi dgi dgi さん
    フォーラムオペレータの佐伯 玲 です。

    GRANT文を使用してオブジェクト毎に権限を設定する方法ではいかがでしょうか?
    ユーザーマッピングでDatabaseを指定後にGRANT文のクエリを発行して該当のユーザーに対するテーブルのSELECT権限を付与すればそのDatabase内でも権限を付与したテーブルにのみSELECT権限がある状態になるかと思います。

    GRANT (オブジェクトの権限の許可) (Transact-SQL)
    http://msdn.microsoft.com/ja-jp/library/ms188371(v=sql.100).aspx

    使用例」にある「A. テーブルの SELECT 権限を許可する」が丁度参考になるのではないかと思います。


    少しでも参考になりましたら幸いです。
    宜しくお願い致します。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレータ 佐伯 玲


    • 編集済み 佐伯玲 2013年3月4日 7:59
    • 回答の候補に設定 佐伯玲 2013年3月5日 0:47
    • 回答としてマーク 佐伯玲 2013年3月7日 6:12
    2013年3月4日 7:56
  • 佐伯玲さま

    おっしゃられた方法にて対応が出来ました。

    ありがとうございます。また、返答遅れまして大変申し訳ありませんでした。

    2013年3月11日 13:49