Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » SQL のダイアレクトと互換性 » SQL ダイアレクト » Adaptive Server Enterprise のアーキテクチャ

 

ユーザとグループ

Adaptive Server Enterprise と SQL Anywhere では、ユーザとグループのモデルに違いがあります。

Adaptive Server Enterprise では、ユーザはサーバに接続します。各ユーザには、サーバのログイン ID とパスワード、およびそのサーバ上でアクセスする各データベースのユーザ ID が必要になります。データベースの各ユーザは、1 つのグループにしか属せません。

SQL Anywhere では、ユーザは直接データベースに接続するため、データベース・サーバに対する別のログイン ID は必要ありません。代わりに、各ユーザはデータベースを使用できるようにそのデータベースに対するユーザ ID とパスワードを付与されます。ユーザは複数のグループに属することができ、グループの階層構造も許可されます。

いずれのサーバもグループをサポートしているため、複数のユーザに一度にパーミッションを付与できます。ただし、グループの詳細に関しては、サーバ間で違いがあります。たとえば、Adaptive Server Enterprise では各ユーザは 1 つのグループにしか入れませんが、SQL Anywhere では制限はありません。特定の情報については、ユーザとグループに関して両者のマニュアルを比較してください。

Adaptive Server Enterprise と SQL Anywhere のどちらにも、デフォルトのパーミッションを定義する public グループがあります。すべてのユーザは、自動的に public グループのメンバになります。

次に、SQL Anywhere がサポートする、Adaptive Server Enterprise のユーザとグループ管理のシステム・プロシージャを示します。Adaptive Server Enterprise のシステム・プロシージャとカタログ・プロシージャを参照してください。

システム・プロシージャ 説明
sp_addlogin Adaptive Server Enterprise では、ユーザをサーバに追加する。SQL Anywhere では、ユーザをデータベースに追加します。
sp_adduser Adaptive Server Enterprise と SQL Anywhere の両方で、ユーザをデータベースに追加する。Adaptive Server Enterprise では、これは sp_addlogin とは異なるタスクですが、SQL Anywhere では同じです。
sp_addgroup グループをデータベースに追加する。
sp_changegroup ユーザをグループに追加するか、ユーザをあるグループから別のグループに移動する。
sp_droplogin Adaptive Server Enterprise では、ユーザをサーバから削除する。SQL Anywhere では、ユーザをデータベースから削除します。
sp_dropuser ユーザをデータベースから削除する。
sp_dropgroup グループをデータベースから削除する。

Adaptive Server Enterprise では、ログイン ID はサーバ全体に適用されます。SQL Anywhere では、ユーザは個々のデータベースに属します。

データベース・オブジェクト・パーミッション

個々のデータベース・オブジェクトに対するパーミッションを付与する GRANT 文と REVOKE 文は、Adaptive Server Enterprise と SQL Anywhere でよく似ています。どちらの文も、データベースのテーブルとビューに対する SELECT、INSERT、DELETE、UPDATE、REFERENCES パーミッションを付与でき、データベースのテーブルの選択したカラムに対する UPDATE パーミッションを付与できます。どちらも、ストアド・プロシージャに対する EXECUTE パーミッションを付与できます。

たとえば、次の文は Adaptive Server Enterprise と SQL Anywhere の両方で有効です。

GRANT INSERT, DELETE
ON Employees
TO MARY, SALES;

この文は、Employees テーブルで INSERT 文と DELETE 文を使用できるパーミッションを MARY というユーザと SALES グループに付与します。

SQL Anywhere と Adaptive Server Enterprise の両方で、WITH GRANT OPTION 句は、パーミッションを付与されるユーザがそれを他のユーザに付与することを許可します。ただし、SQL Anywhere は WITH GRANT OPTION を GRANT EXECUTE 文で使用することを許可しません。SQL Anywhere では、WITH GRANT OPTION はユーザにのみ指定できます。グループのメンバは、グループに付与されている WITH GRANT OPTION を継承しません。

データベース全体に適用されるパーミッション

Adaptive Server Enterprise と SQL Anywhere は、データベース全体に適用されるユーザ・パーミッションに異なったモデルを使用します。SQL Anywhere は DBA パーミッションを使用して、データベース内での完全な権限をユーザに許可します。Adaptive Server Enterprise のシステム管理者は、このパーミッションをサーバ上のすべてのデータベースに対して使用できます。しかし、SQL Anywhere データベース上での DBA 権限は、Adaptive Server Enterprise のデータベース所有者のパーミッションとは異なります。Adaptive Server Enterprise のデータベース所有者は、他のユーザが所有するオブジェクトに対するパーミッションを得るには、Adaptive Server Enterprise の SETUSER 文を使用してください。ユーザとグループを参照してください。

SQL Anywhere は、RESOURCE パーミッションを使用して、データベース内にオブジェクトを作成する権限をユーザに許可します。Adaptive Server Enterprise のパーミッションで非常に近いのは、データベース所有者が使用する GRANT ALL です。