sql server 2008 r2 セキュリティ関数 (transact sql) 2011-08-27

3
MS SQL Server 2008 R2 セキュリティ関数 (Transact-SQL) 1 投稿日: 2011 年 8 月 27 日 作成者: 斉藤之雄 http://www.fxfrog.com/ MS SQL Server 2008 R2 セキュリティ関数 (Transact-SQL) について調べる機会がありましたので、 全体像を見てみます。 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 を取得できます。 コンテキスト切り替えの詳細については、「コンテキストの切り替えについて」を 参照してください。

Upload: -office-saitoh

Post on 19-Jun-2015

1.615 views

Category:

Self Improvement


0 download

DESCRIPTION

MS SQL Server 2008 R2 セキュリティ関数 (Transact-SQL)

TRANSCRIPT

Page 1: Sql server 2008 r2 セキュリティ関数 (transact sql) 2011-08-27

MS SQL Server 2008 R2 セキュリティ関数 (Transact-SQL)

1

投稿日: 2011年 8月 27日 作成者: 斉藤之雄 http://www.fxfrog.com/

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

全体像を見てみます。

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 を取得できます。

コンテキスト切り替えの詳細については、「コンテキストの切り替えについて」を

参照してください。

Page 2: Sql server 2008 r2 セキュリティ関数 (transact sql) 2011-08-27

MS SQL Server 2008 R2 セキュリティ関数 (Transact-SQL)

2

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 を使用することを

お勧めします。

Page 3: Sql server 2008 r2 セキュリティ関数 (transact sql) 2011-08-27

MS SQL Server 2008 R2 セキュリティ関数 (Transact-SQL)

3

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)

指定した識別番号から、データベース ユーザー名を返します。

以上