SET PASSWORD
SET PASSWORD ステートメントは、セキュリティで保護されたデータベースに対して次の機能を提供します。
構文
SET PASSWORD [FOR 'ユーザー名'] = パスワード
 
ユーザー名 ::= データベースにログオンしているか、またはデータベースへのログオンを許可されているユーザーの名前
 
パスワード ::= パスワード文字列
備考
SET PASSWORD は、データベースでリレーショナル セキュリティが有効になっていることを必要とし、いつ発行してもかまいません(対照的に、SET SECURITY は、Master ユーザーのセッションが現在の唯一のデータベース接続である場合のみ発行できます。SET SECURITY を参照してください)。
SET PASSWORD は、Master ユーザーでも Master 以外の通常のユーザーでも発行できます。Master ユーザーは、データベースへのログインを許可されているすべてのユーザーのパスワードを変更できます。通常のユーザーは自身のパスワードしか変更できません。変更されたパスワードは、ユーザーが次回データベースにログオンしたときに有効になります。
1 ユーザー名は、PSQL データベースにログオン可能なユーザーを参照します。これは、オペレーティング システム レベルでユーザーに割り当てられている名前とは異なる場合があります。たとえば、オペレーティング システムにログオンできるユーザーは Yogine であるとします。データベース Demodata のセキュリティを有効にし、Yogine をユーザー名 DeptMgr として Demodata に追加します。この人物が Demodata にログオンする場合に要求されるユーザー名は、DeptMgr です。
パスワードの特性
次の例では以下のことを示します。Master ユーザーは、パスワード "bluesky" を使ってデータベースのセキュリティを有効にします。次に、Master ユーザーは "user45" というユーザーにログオン権限を与えてパスワードを "tmppword" と指定し、user45 に person という名前のテーブルの SELECT 権限を与えます。その後で、Master ユーザーは Master のセキュリティ パスワードを "reddawn" に変更し、user45 のパスワードを "newuser" に変更します。
SET SECURITY = bluesky
-- これにより、データベースのセキュリティが有効になります
GRANT LOGIN TO user45:tmppword
GRANT SELECT ON person TO user45
SET PASSWORD = reddawn
-- Master のパスワードを変更します。つまり、データベース全体のパスワードが変更されます
SET PASSWORD FOR user45 = newuser
次の例では、user45 はパスワード "newuser" でデータベースにログオンしているものとします。user45 は自分のパスワードを "tomato" に変更します。その後、person テーブル内のすべてのレコードを選択します。
SET PASSWORD FOR user45 = tomato
-- これは、user45 のパスワードのみを変更します
SELECT * FROM person
-- user45 は今までどおり、テーブル person の SELECT 権限を持ちます
関連項目
ALTER USER
CREATE USER
GRANT
SET SECURITY