はじめに

通常、ユーザを削除すると、そのユーザーが所有するオブジェクトも削除されます。
しかし、本稿でご紹介する方法を用いれば、ユーザーを削除してもオブジェクトを残すことが可能です。

概要

ユーザ削除時に、削除対象ユーザが所有するオブジェクトを別のユーザの所有オブジェクトへと自動的に変更することができます。
この方法は、以降で説明するパラメータにユーザを設定することで有効になります。
パラメータに設定するユーザは、オブジェクトの新たな所有者となるユーザを設定します。

パラメータ

下記のパラメータにユーザを設定します。
GlobalHeirUsername = ‘値’

パラメータに設定する値の内容は以下になります。
内容
<AUTO>デフォルトの値。
削除されたLDAPユーザのオブジェクトをdbadminユーザに所有を変更します。
LDAPユーザでないユーザを削除した場合、ユーザのオブジェクトは削除されます。
空文字削除されたユーザのオブジェクトは削除されます。
ユーザ名削除されたユーザのオブジェクトは、設定されたユーザに所有を変更します。
設定されたユーザが存在しない場合は、ユーザを作成して所有を変更します。

実行例


【存在するユーザをパラメータに設定して、ユーザを削除した場合】


【存在しないユーザをパラメータに設定して、ユーザを削除した場合】


注意事項

・ユーザ削除時にオブジェクトの所有者は変更されますが、変更後のユーザにスキーマの権限付与はされないため、手動で権限付与を行ってください。

・パラメータに設定したユーザを削除しようとすると、以下のエラーが発生してユーザを削除することができません。
ユーザの削除は、パラメータに設定したユーザを変更してから行ってください。
dbadmin=> drop user usr3 cascade;
ROLLBACK 6676: Cannot drop global heir user “usr3”. Try changing / clearing the GlobalHeirUsername config parameter

検証バージョンについて

この記事の内容はVertica 9.2で確認しています。

更新履歴

2019/7/12 本記事を公開