SQL 構文リファレンス : SET PASSWORD
 
このページをシェアする                  
SET PASSWORD
SET PASSWORD ステートメントは、セキュリティで保護されたデータベースに対して次の機能を提供します。
Master ユーザーは、Master ユーザーまたはそれ以外のユーザーのパスワードを変更できます。
通常のユーザー(Master 以外のユーザー)は、データベースへのログオン パスワードを変更できます。
構文
SET PASSWORD [FOR 'ユーザー名'] = パスワード
 
ユーザー名 ::= データベースにログオンしているか、またはデータベースへのログオンを許可されているユーザーの名前
 
パスワード ::= パスワード文字列
備考
SET PASSWORD は、データベースでリレーショナル セキュリティが有効になっていることを必要とし、いつ発行してもかまいません(対照的に、SET SECURITY は、Master ユーザーのセッションが現在の唯一のデータベース接続である場合のみ発行できます。SET SECURITY を参照してください)。
SET PASSWORD は、Master ユーザーでも Master 以外の通常のユーザーでも発行できます。Master ユーザーは、データベースへのログインを許可されているすべてのユーザーのパスワードを変更できます。通常のユーザーは自身のパスワードしか変更できません。変更されたパスワードは、ユーザーが次回データベースにログオンしたときに有効になります。
SET PASSWORD ステートメントを発行するユーザー
FOR 句付き
FOR 句なし
Master
Master は、Master またはデータベースへのログオンを許可されているすべてのユーザーのユーザー名を指定できます。1
ユーザー名のパスワードが変更されます。
データベース全体のパスワードが変更されます(つまり、データベース全体に影響を与える、Master ユーザーのパスワードが変更されます)。
通常
通常のユーザーは、自身のユーザー名を指定できます。ユーザーはデータベースにログオンしている必要があります。
当該ユーザーのパスワードのみ変更されます。
SET PASSWORD ステートメントを発行したユーザーのパスワードのみが変更されます。ユーザーはデータベースにログオンしている必要があります。
1 ユーザー名は、PSQL データベースにログオン可能なユーザーを参照します。これは、オペレーティング システム レベルでユーザーに割り当てられている名前とは異なる場合があります。たとえば、オペレーティング システムにログオンできるユーザーは Yogine であるとします。データベース Demodata のセキュリティを有効にし、Yogine をユーザー名 DeptMgr として Demodata に追加します。この人物が Demodata にログオンする場合に要求されるユーザー名は、DeptMgr です。
パスワードの特性
パスワードの最大長と使用できる文字については、『Advanced Operations Guide』の識別子の種類別の制限を参照してください。
パスワードでは大文字小文字が区別されます。パスワードがアルファベット以外の文字で始まる場合は、パスワードを一重引用符で囲む必要があります。
先頭文字以外であれば、空白文字をパスワードで使用することができます。パスワードに空白文字が含まれる場合は、パスワードを一重引用符で囲む必要があります。原則として、パスワードに空白文字を使用することは避けてください。
"Password" は予約語ではありません。これは、テーブルまたは列の名前として使用することができます。ただし、SQL ステートメント内でテーブル名または列名として使用する場合は、"password" はキーワードであるため、二重引用符で囲む必要があります。
リテラルの "null" をパスワードとして使用する場合は、単語を一重引用符で囲む必要があります('null')。文字列を引用符で囲むことによって、データベースのセキュリティを無効にするための SET SECURITY = NULL ステートメントとの混乱を防ぎます。
次の例では以下のことを示します。Master ユーザーは、パスワード bluesky を使ってデータベースのセキュリティを有効にします。次に、Master ユーザーは user45 というユーザーにログオン権限を与えてパスワードを tmppword と指定し、そのユーザーにテーブル person の SELECT 権限を与えます。その後で、Master ユーザーは Master のパスワードを reddawn に変更することで、データベース全体に対するパスワードを変更します。最後に、user45 のパスワードを newuser に変更します。
SET SECURITY = bluesky
GRANT LOGIN TO user45:tmppword
GRANT SELECT ON person TO user45
SET PASSWORD = reddawn
SET PASSWORD FOR user45 = newuser
次の例では、user45 はパスワード newuser でデータベースにログオンしているものとします。user45 は自分のパスワードを tomato に変更し、その後、person テーブル内のすべてのレコードを選択しています。
SET PASSWORD FOR user45 = tomato
SELECT * FROM person
関連項目
ALTER USER
CREATE USER
GRANT
SET SECURITY