0
(0)

MS SQL Server 2008 R2 セキュリティ関数 (Transact-SQL) について調べる機会がありましたので、全体像を見てみます。

[amazon_enhanced asin=”B003M05EHE” container=”” container_class=”” price=”All” background_color=”FFFFFF” link_color=”000000″ text_color=”0000FF” /]  [amazon_enhanced asin=”B003M05EI8″ container=”” container_class=”” price=”All” background_color=”FFFFFF” link_color=”000000″ text_color=”0000FF” /]  [amazon_enhanced asin=”4891006447″ container=”” container_class=”” price=”All” background_color=”FFFFFF” link_color=”000000″ text_color=”0000FF” /]  [amazon_enhanced asin=”4798122122″ container=”” container_class=”” price=”All” background_color=”FFFFFF” link_color=”000000″ text_color=”0000FF” /]

  • CURRENT_USER (Transact-SQL)
    現在のユーザーの名前を返します。この関数を実行すると、
    USER_NAME() と同じ結果が得られます。
  • HAS_DBACCESS (Transact-SQL)
    ユーザーが指定のデータベースにアクセスできるかどうかについて
    情報を返します。
  • HAS_PERMS_BY_NAME (Transact-SQL)
    セキュリティ保護可能なリソースに対して現在のユーザーが持つ
    有効な権限を評価します。関連する関は fn_my_permissions です。
  • HashBytes (Transact-SQL)
    入力の MD2、MD4、MD5、SHA、または SHA1 ハッシュを返します。
  • IS_MEMBER (Transact-SQL)
    現在のユーザーが指定された Microsoft Windows グループまたは
    SQL Server データベース ロールのメンバーであるかどうかを示します。
  • IS_SRVROLEMEMBER (Transact-SQL)
    SQL Server ログインが、指定した固定サーバー ロールのメンバーで
    あるかどうかを示します。
  • LOGINPROPERTY (Transact-SQL)
    ログインのポリシー設定に関する情報を返します。
  • ORIGINAL_LOGIN (Transact-SQL)
    SQL Server インスタンスに接続しているログインの名前を返します。
    この関数を使用すると、明示的または暗黙的にコンテキストが何度も
    切り替えられるセッションにおける、元のログインの ID を取得できます。
    コンテキスト切り替えの詳細については、「コンテキストの切り替えについて」を
    参照してください。
  • PERMISSIONS (Transact-SQL)
    現在のユーザーのステートメント権限、オブジェクト権限、または
    列権限を示すビットマップを含む値を返します。
    重要
    この機能は、将来のバージョンの Microsoft SQL Server では
    削除される予定です。新しい開発作業では、この機能の使用を避け、
    現在この機能を使用しているアプリケーションは修正するようにしてください。
    代わりに、fn_my_permissions および Has_Perms_By_Name を
    使用してください。PERMISSIONS 関数を継続して使用すると、
    パフォーマンスが低下する場合があります。
  • PWDENCRYPT (Transact-SQL)
    現在のバージョンのパスワード ハッシュ アルゴリズムを使用して、
    入力値の SQL Server パスワード ハッシュを返します。
    PWDENCRYPT は古い関数であり、将来の SQL Server リリースでは
    サポートされない可能性があります。代わりに、HASHBYTES を使用します。
    HASHBYTES では、より多くのハッシュ アルゴリズムを使用できます。
  • PWDCOMPARE (Transact-SQL)
    パスワードをハッシュして既存のパスワードのハッシュと比較します。
    PWDCOMPARE を使用すると、空白の SQL Server ログイン パスワードや、
    よくある脆弱なパスワードを検索できます。
  • SESSION_USER (Transact-SQL)
    現在のデータベースに含まれる現在のコンテキストのユーザー名を返します。
  • SESSIONPROPERTY (Transact-SQL)
    セッションの SET オプション設定を返します。
    オプション多数あるので下記参照ください。
    http://msdn.microsoft.com/ja-jp/library/ms175001.aspx
  • SETUSER (Transact-SQL)
    固定サーバー ロール sysadmin または固定データベース ロール
    db_owner のメンバが、別のユーザーの権限を借用できるようにします。
    重要
    SETUSER は旧バージョンとの互換性のためだけに用意されています。
    SETUSER は、将来の SQL Server リリースではサポートされない
    可能性があります。代わりに EXECUTE AS を使用することを
    お勧めします。
  • SUSER_ID (Transact-SQL)
    ユーザーのログイン ID 番号を返します。

    SQL Server 2000 で使用した場合、SUSER_ID は
    常に NULL を返します。SQL Server 2005 以降では、
    USER_ID は sys.server_principals カタログ ビューで
    principal_id として一覧表示されている値を返します。
  • SUSER_NAME (Transact-SQL)
    ユーザーのログイン識別名を返します。
  • SUSER_SID (Transact-SQL)
    指定されたログイン名のセキュリティ ID 番号 (SID) を返します。
  • SUSER_SNAME (Transact-SQL)
    セキュリティ ID 番号 (SID) に関連付けられているログイン名を返します。
  • SYSTEM_USER (Transact-SQL)
    現在のログインに既定値が指定されていない場合に、
    システム提供の値をテーブルに挿入します。
  • USER (Transact-SQL)
    既定値が指定されていない場合に、現在のユーザーの
    データベース ユーザー名に対するシステム定義の値を、
    テーブルに挿入します。
  • USER_ID (Transact-SQL)
    データベース ユーザーの ID 番号を返します。
    重要
    この機能は、将来のバージョンの Microsoft SQL Server では
    削除される予定です。新しい開発作業では、
    この機能の使用を避け、現在この機能を使用している
    アプリケーションは修正するようにしてください。
    代わりに DATABASE_PRINCIPAL_ID を使用してください。
  • USER_NAME (Transact-SQL)
    指定した識別番号から、データベース ユーザー名を返します。
スライドシェアでも公開しています。

以上

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

投稿者 斉藤之雄 (Yukio Saito)

Global Information and Communication Technology OTAKU / Sports volunteer / Social Services / Master of Technology in Innovation for Design and Engineering, AIIT / BA, Social Welfare, NFU / twitter@yukio_saitoh