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 文 » SQL 文 (E ~ O)

 

GRANT 文

この文は、新しいユーザ ID の作成、指定したユーザへのパーミッションの付与または変更、パスワードの作成または変更に使用します。

パーミッションは無効化されたオブジェクトに対して付与できます。無効化されたオブジェクトに対するパーミッションはデータベースに保存され、オブジェクトが有効になると使用できるようになります。

構文 1 - 権限の付与
GRANT authority, ... 
 TO userid, ...
authority :  
BACKUP 
| DBA
| PROFILE 
| READCLIENTFILE 
| READFILE
| [ RESOURCE | ALL ]
| VALIDATE
| WRITECLIENTFILE
構文 2 - グループ・ステータスまたはグループのメンバシップの付与
GRANT { GROUP | MEMBERSHIP IN GROUP userid, ... }
 TO userid, ...
構文 3 - データベース・オブジェクト・パーミッションの付与
GRANT permission, ...
 ON [ owner.]object-name
 TO userid, ...
[ WITH GRANT OPTION ]
[ FROM userid ]
permission : 
ALL [ PRIVILEGES ] 
| ALTER 
| DELETE 
| INSERT 
| REFERENCES [ ( column-name, ... ) ] 
| SELECT [ ( column-name, ... ) ] 
| UPDATE [ ( column-name, ... ) ]
構文 4 - 実行パーミッションの付与
GRANT EXECUTE ON [ owner.]{ procedure-name | user-defined-function }
TO userid, ...
構文 5 - 統合化ログインの付与
GRANT INTEGRATED LOGIN TO user-profile-name, ... 
AS USER userid
構文 6 - Kerberos ログインの付与
GRANT KERBEROS LOGIN TO client-Kerberos-principal, ... 
AS USER userid
構文 7 - 接続パーミッションの付与
GRANT CONNECT TO userid, ...
[ AT starting-id ]
[ IDENTIFIED BY password, ... ]
構文 8 - DB 領域への作成パーミッションの付与
GRANT CREATE ON dbspace-name 
TO userid, ...
パラメータ
  • AT starting-id 句   この句は一般的には使用されません。この句では、リストの最初のユーザ ID に使用する内部数値を指定します。

    AT starting-id 句は、アンロード・ユーティリティが使用します。

  • GRANT authority 句   この句は、次に示す権限のいずれかを付与するときに使用します。

    • BACKUP 権限   この権限を付与すると、ユーザはデータベースをバックアップできるようになります。BACKUP 権限を参照してください。

    • DBA 権限   この権限を付与すると、ユーザはすべてのタスクを実行できるようになります。通常、これはデータベース管理者のために予約されています。DBA 権限を参照してください。

    • PROFILE 権限   この権限を付与すると、ユーザはプロファイリングと診断操作を実行できるようになります。PROFILE 権限を参照してください。

    • READCLIENTFILE 権限   この権限を付与すると、データをロードするときなどに、ユーザがクライアント・コンピュータ上のファイルを読み込むことができるようになります。READCLIENTFILE 権限を参照してください。

    • READFILE 権限   この権限を付与すると、ユーザは OPENSTRING 句を使用してファイルに SELECT 文を実行できるようになります。READFILE 権限を参照してください。

    • RESOURCE 権限または ALL 権限   この権限を付与すると、ユーザはテーブルとビューを作成できるようになります。ALL は Sybase Adaptive Server Enterprise と互換性のある RESOURCE の同意語です。RESOURCE 権限を参照してください。

    • VALIDATE 権限   この権限を付与すると、ユーザはさまざまな VALIDATE 文でサポートされる検証操作を実行できるようになります。この検証とは、たとえば、データベースの検証、テーブルとインデックスの検証、およびチェックサムの検証などです。また、ユーザは Sybase Central の検証ユーティリティ (dbvalid) とデータベース検証ウィザードを使用できるようになります。VALIDATE 権限を参照してください。

    • WRITECLIENTFILE 権限   この権限を付与すると、データをアンロードするときなどに、ユーザがクライアント・コンピュータ上のファイルに書き込むことができるようになります。WRITECLIENTFILE 権限を参照してください。

  • GROUP 句   このパーミッションを使用すると、ユーザがメンバを持てるようになります。グループの管理を参照してください。

  • MEMBERSHIP IN GROUP 句   このパーミッションは、グループのメンバシップをユーザに付与します。ユーザは、グループ・レベルで設定された継承可能なパーミッションと権限を継承します。グループの管理を参照してください。

  • GRANT permission 句   GRANT permission 句を使用すると、個々のテーブルまたはビューにパーミッションを付与できます。テーブル・パーミッションは、個々に指定したり、ALL を使用して一度にすべてのパーミッションを付与したりできます。次に、付与できるパーミッションのリストを示します。

    • ALL パーミッション   このパーミッションは、ALTER、DELETE、INSERT、REFERENCES、SELECT、および UPDATE の各パーミッションを付与します。ALL は RESOURCE の同意語です。

    • ALTER パーミッション   このパーミッションを使用すると、ユーザが ALTER TABLE 文を使用して指定のテーブルを変更できます。このパーミッションは、ビューには使えません。

    • DELETE パーミッション   このパーミッションを使用すると、ユーザは指定したテーブルまたはビューからローを削除できます。

    • INSERT パーミッション   このパーミッションを使用すると、ユーザは指定したテーブルまたはビューにローを挿入できます。

    • REFERENCES パーミッション   このパーミッションを使用すると、ユーザは指定したテーブルのインデックスを作成できます。また、指定したテーブルを参照する外部キーを作成できます。カラム名を指定する場合、ユーザはそれらのカラムのみを参照できます。カラムの REFERENCES パーミッションは、ビューに対しては付与されません。テーブルだけに対して付与されます。INDEX は REFERENCES の同意語です。

    • SELECT パーミッション   このパーミッションを使用すると、ユーザはビューまたはテーブル内の情報を参照できます。カラム名を指定する場合、ユーザはそれらのカラムのみを参照できます。カラムの SELECT パーミッションは、ビューに対しては付与されません。テーブルだけに対して付与されます。

    • UPDATE パーミッション   このパーミッションを使用すると、ユーザはビューまたはテーブル内のローを更新できます。カラム名を指定する場合、ユーザはそれらのカラムのみを更新できます。

  • FROM 句   FROM userid を指定すると、その userid は付与者のユーザ ID としてシステム・テーブルに記録されます。この句は、アンロード・ユーティリティ (dbunload) での使用を目的としています。このオプションを直接使用したり変更したりしないでください。

  • CONNECT TO 句  

    注意

    ユーザを作成する場合は、CREATE USER 文を使用することをおすすめします。CREATE USER 文を参照してください。

    新しいユーザを作成します。GRANT CONNECT を使うと、どのユーザも自分のパスワードを変更できます。パスワードとして空の文字列を持つユーザを作成するには、次のように入力します。

    GRANT CONNECT TO userid IDENTIFIED BY "";

    パスワードのないユーザを作成するには、次のように入力します。

    GRANT CONNECT TO userid;
    パスワードのないユーザは、データベースに接続できません。これは、グループを作成し、他のユーザはグループ・ユーザ ID を使用してデータベースに接続させないようにする場合に便利です。ユーザ ID には、有効な ID を使用します。

    ユーザ ID とパスワードに使用できない文字列は次のとおりです。

    • 空白スペース、一重引用符、または二重引用符で始まる値
    • 空白スペースで終わる値
    • セミコロンを含む値
    パスワードは有効な ID、または一重引用符で囲んだ文字列 (最高で 255 バイト) にすることができます。有効なパスワードの指定については、パスワードの設定を参照してください。

    verify_password_function オプションは、パスワード規則 (1 桁以上の長さであることなど) の実装に使用できる関数を指定します。パスワード検証機能を使用する場合、GRANT CONNECT 文に複数のユーザ ID とパスワードを指定することはできません。verify_password_function オプション [データベース]を参照してください。

  • CREATE ON 句   ユーザは、指定された DB 領域にデータベース・オブジェクトを作成できます。CREATE パーミッションは、グループ・メンバシップを通して継承できます。ユーザがオブジェクトを作成するには、RESOURCE 権限も必要です。RESOURCE 権限を参照してください。

備考

GRANT 文を使用して、データベース・パーミッションと権限を個々のユーザ ID とグループに付与します。ユーザとグループを作成するときにも使用します。

WITH GRANT OPTION を指定する場合、指定した名前のユーザ ID にもパーミッションが与えられ、他のユーザ ID に同じパーミッションを GRANT (付与) できます。グループのメンバは、グループに付与されている WITH GRANT OPTION を継承しません。

GRANT 文の構文 4 を使って、プロシージャを実行するパーミッションを付与します。

GRANT 文の構文 5 は、1 つまたは複数の Windows ユーザまたはグループ・プロファイルと既存のデータベース・ユーザ ID の間に明示的な統合化ログイン・マッピングを作成します。これにより、ローカル・コンピュータにログインできたユーザは、ユーザ ID またはパスワードを指定せずにデータベースに接続できます。user-profile-name は、domain\user-name の形式にできます。統合化ログインがマッピングされているデータベースのユーザ ID にはパスワードを指定する必要があります。統合化ログインの使用方法を参照してください。

GRANT 文の構文 6 は、1 つ以上の Kerberos プリンシパルから既存のデータベース・ユーザ ID にマッピングして、Kerberos の認証済みログインを作成します。その結果、Kerberos に正常にログインしたユーザ (有効な Kerberos のチケットが付与されているチケットを持つユーザ) は、ユーザ ID やパスワードを入力しなくてもデータベースに接続できます。Kerberos ログインがマッピングされているデータベースのユーザ ID にはパスワードを指定する必要があります。client-Kerberos-principal のフォーマットは、user/instance@REALM にします。この /instance はオプションです。領域を含む完全なプリンシパルと、インスタンスまたは領域を区別して扱う場合にのみ異なるプリンシパルを指定する必要があります。

プリンシパルの大文字と小文字は区別されるため、正しく指定する必要があります。大文字と小文字の違いしかない複数のプリンシパルのマッピングはサポートされていません (たとえば、jjordan@MYREALM.COM と JJordan@MYREALM.COM の両方にマッピングすることはできません)。

Kerberos プリンシパルに明示的なマッピングがなく、Guest データベースのユーザ ID が存在し、パスワードがある場合、Kerberos プリンシパルは Guest データベースのユーザ ID (統合化ログイン用と同じ Guest データベースのユーザ ID) を使用して接続します。

Kerberos 認証の詳細については、Kerberos 認証を参照してください。

パーミッション

構文 3   FROM 句を指定する場合、DBA 権限が必要です。それ以外の場合、テーブルの所有者であるか、テーブル WITH GRANT OPTION にパーミッションが付与されている必要があります。

構文 4   プロシージャの所有者であるか、DBA 権限が必要です。

構文 5 と 6   DBA 権限が必要です。

構文 7   自分のパスワードを変更するには、GRANT CONNECT を使用するか、DBA 権限が必要です。別のユーザのパスワードを変更する場合 (DBA 権限を持って) は、データベースに他のユーザが接続していないことが必要です。

関連する動作

オートコミット。

参照
標準と互換性
  • SQL/2003   構文 3 はコア機能です。構文 4 は永続的ストアド・モジュール機能です。他の構文はベンダ拡張です。

新しいデータベース・ユーザを作成します。

GRANT CONNECT TO SQLTester
IDENTIFIED BY welcome

Laurel というユーザに Employees テーブル上のパーミッションを付与します。

GRANT
SELECT, UPDATE ( Street )
ON Employees
TO Laurel;

1 つの文で複数のパーミッションを付与できます。パーミッションはカンマで区切ります。

ユーザ Hardy に Calculate_Report プロシージャの実行を許可します。

GRANT EXECUTE ON Calculate_Report
TO Hardy;