データベース中のテーブルとプロシージャを検索するのにグループを使うことができます。すべてのユーザがグループ PUBLIC に属し、グループ PUBLIC が SYSGROUPS ビューを所有する SYS グループに属するため、次に示すクエリは常にビュー SYS.SYSGROUPS を検索します。
SELECT * FROM SYSGROUPS; |
SYSGROUPS ビューには、データベース内のグループ・メンバシップを示す group-name と member-name のペアのリストが含まれています。
テーブル employees がユーザ ID personnel によって所有されており、M_Haneef が personnel グループのメンバである場合、M_Haneef は SQL 文で単に employees と指定することでテーブル employees を参照できます。personnel グループのメンバでないユーザは、「修飾された」名前 personnel.employees を使用する必要があります。
名前を修飾しないでテーブルにアクセスできるように、テーブルを所有することだけが目的のグループを作成することをおすすめします。このグループには何のパーミッションも与えませんが、すべてのユーザをこのグループのメンバにします。次にパーミッション・グループを作成し、ユーザを適宜それらのパーミッション・グループのメンバにします。
ユーザがグループ所有のテーブルと同じ名前のテーブルを所有している場合、修飾されていないテーブル名は、グループが所有するテーブルではなくユーザが所有するテーブルを表します。同様に、ユーザが同じ名前のテーブルを所有する複数のグループに属している場合、そのユーザはテーブル名を修飾する必要があります。
データベース・オブジェクトの名前とプレフィクスを参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |