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)
指定した識別番号から、データベース ユーザー名を返します。
—
スライドシェアでも公開しています。
以上