SQL 構文リファレンス : SET OWNER
 
このページをシェアする                  
SET OWNER
SET OWNER ステートメントは、現在のデータベース セッションで SQL コマンドがアクセスするファイルのオーナー ネームをリストアップします。このファイル レベルのセキュリティ機能の詳細については、オーナー ネームを参照してください。
構文
SET OWNER = [']オーナー ネーム['] [, [']オーナー ネーム[']]...
備考
SET OWNER ステートメントでは、アルファベット以外の文字で始まるオーナー ネーム、およびスペースを含んでいる ASCII 形式のオーナー ネームは一重引用符で囲む必要があります。16 進数の長いオーナー ネームは 0x または 0X で始まるため、常に一重引用符が必要です。
SET OWNER ステートメントは、セッション内のデータ ファイルに必要とされるオーナー ネームの一覧を作成できます。リレーショナル エンジンは、オーナー ネームをキャッシュしておき、MicroKernel エンジンからのファイル アクセス要求の必要に応じて使用します。
SET OWNER ステートメントは、現在の接続セッションでのみ有効です。ユーザーは、SET OWNER を発行後にログアウトした場合、次回のログイン時にこのコマンドを再発行する必要があります。
SET OWNER ステートメントごとに、セッションの現在のオーナー ネーム リストはリセットされます。追加のステートメントにより、リストにオーナー ネームを追加することはできません。
セキュリティが無効になっているデータベースでは、SET OWNER ステートメントにより、このステートメントで指定したオーナー ネームと一致するオーナー ネームを持つすべてのデータ ファイルへのフル アクセスが許可されるようになります。
セキュリティが有効になっているデータベースでは、SET OWNER ステートメントは Master ユーザー以外のユーザーには何の影響もありません。Master ユーザーが自身に権限を付与していない場合は、SET OWNER を実行することにより、指定したオーナー ネームのいずれかを持つすべてのデータ ファイルへのフル アクセスが Master ユーザーに与えられます。Master ユーザーは、他のユーザーについて、次の 2 つの方法のいずれかでアクセス権限を付与することができます。
SET OWNER でオーナー ネームを指定し、続けて GRANT をオーナー ネームを指定しないで実行します。
GRANT をオーナー ネームを指定して実行します。
これら 2 つのオプションについて、以下の例で説明します。
次の例では、オーナー ネームは数字で始まっているため、一重引用符で囲まれています。
SET OWNER = '1@lphaOm3gA'
============ 
次の例は、現在のセッションでアクセスするファイルによって使用されるオーナー ネームのリストを提供しています。
SET OWNER = 'serverl7 region5', '0x7374726f6e672050617373776f7264212425fe'
一重引用符が使用されている理由は、ASCII 文字列の場合はスペースが含まれているためであり、16 進数文字列の場合はプレフィックスの 0x が数字で始まっているためです。
============ 
データベース セッション中、各 SET OWNER ステートメントは前の同ステートメントをオーバーライドします。次の例では、2 番目のコマンドを実行した後、最初の 3 つのオーナー ネームはファイル アクセスに使用できなくなります。
SET OWNER = judyann, krishna1, maxima
SET OWNER = d3ltagamm@, V3rs10nXIII, m@X1mumSp33d
============ 
次の例は、Master ユーザーがセキュリティで保護されたデータベースで SET OWNER を使用する方法を示します。セキュリティは有効になっていますが、ユーザーには何の権限も付与されていません。inventory1 というデータ ファイルはオーナー ネーム admin を持ちます。
Master ユーザーが自身に権限を付与する場合には、2 つのオプションがあります。1 つ目のオプションでは、SET OWNER を発行した後、GRANT をオーナー ネームなしで発行できます。
SET OWNER = admin
GRANT ALL ON inventory1 TO MASTER
2 つ目のオプションでは、Master ユーザーは SET OWNER ステートメントを省略し、オーナー ネームを指定した GRANT を発行できます。
GRANT ALL ON inventory1 admin TO MASTER
どちらの方法も同じ結果になります。
関連項目
GRANT
REVOKE