SET OWNER
SET OWNER ステートメントを使用すると、現在のデータベース接続中に使用するオーナー ネームを 1 つまたは複数指定できます。オーナー ネームは Btrieve ファイルのパスワードと考えられ、MicroKernel エンジンがファイルのアクセスを許可するために必要となります。オーナー ネームとオペレーティング システム ユーザー名あるいはデータベース ユーザー名との間に関連はないので、注意してください。詳細については、
オーナー ネームを参照してください。
構文
SET OWNER = []オーナー ネーム['] [, []オーナー ネーム[']]...
備考
SET OWNER ステートメントにより、ユーザーは、オーナー ネームを必要とするデータ ファイルのオーナー ネームのリストを提供することができます。その結果、リレーショナル エンジンはそのユーザーの接続セッションにそれらのオーナー ネームを設定し、必要に応じて、MicroKernel エンジンからファイル権限を得られるようにします。
SET OWNER ステートメントでは、オーナー ネームがアルファベット以外の文字で始まる場合は、文字列を一重引用符( )で囲む必要があります。この要件は、16 進数の長いオーナー ネームには常に適用されます。このようなオーナー ネームは、最初の 2 バイトが 0x または 0X で始まる必要があります。
SET OWNER ステートメントは、現在の接続セッションでのみ有効です。ユーザーは、SET OWNER を発行後にログアウトした場合、次回のログイン時にこのコマンドを再発行する必要があります。
SET OWNER ステートメントごとに、セッションの現在のオーナー ネーム リストはリセットされます。追加のステートメントにより、リストにオーナー ネームを追加することはできません。
セキュリティが無効になっているデータベースでは、SET OWNER ステートメントにより、このステートメントで指定したオーナー ネームと一致するオーナー ネームを持つすべてのデータ ファイルへのフル アクセスが許可されるようになります。
セキュリティが有効になっているデータベースでは、SET OWNER ステートメントは Master ユーザー以外のユーザーには何の影響もありません。Master ユーザーが自身に権限を付与していない場合は、SET OWNER を実行することにより、指定したオーナー ネームのいずれかを持つすべてのデータ ファイルへのフル アクセスが Master ユーザーに与えられます。Master ユーザーは、他のユーザーについて、次の 2 つの方法のいずれかでアクセス権限を付与することができます。
•SET OWNER でオーナー ネームを指定し、続けて GRANT をオーナー ネームを指定しないで実行します。
•GRANT をオーナー ネームを指定して実行します。
これら 2 つのオプションについて、以下の例で説明します。
例
次の例では、1 つのオーナー ネームを指定しています。
SET OWNER = '12jerry'
============
次の例では、複数のオーナー ネームを提供しています。
SET OWNER = jimbo, terry, maximus
SET OWNER = 'serverl7 region5', '0x0123456789abcdefABCDEF0123456789'
異なる理由により、オーナー ネームを一重引用符で囲むことができることに注目してください。この場合、1 つめにはスペースが含まれており、2 つめは 16 進数で、必須のプレフィックス 0x で始まっています。
============
次の例では、同一の接続内における複数の SET OWNER ステートメントの使用を示します。
SET OWNER = jimbo, terry, maximus
-- オーナー リストには jimbo、terry、maximus が含まれています。
SET OWNER = fred, jennie, lucinda
-- オーナー リストには現在、fred、jennie、lucinda が含まれています。以前の内容は破棄されます。
============
次の例は、Master ユーザーがセキュリティで保護されたデータベースで SET OWNER を使用する方法を示します。セキュリティを有効にしたが、データベースの権限は何も付与されていないと仮定します。inventory データ ファイルはオーナー ネーム admin を持ちます。
Master ユーザーが自身に権限を付与する場合には、2 つのオプションがあります。Master ユーザーは、SET OWNER に続けて GRANT を発行する場合は、オーナー ネームなしで発行できます。そうでない場合は、オーナー ネームを指定して GRANT を発行できます。どちらの方法も同じ結果になります。
SET OWNER = admin
GRANT ALL ON inventory TO MASTER
または
GRANT ALL ON inventory admin TO MASTER
関連項目