<!--
$Header: /usr/prj/pg/cvsroot/doc/doc/src/sgml/ref/revoke.sgml,v 1.5 2001/08/14 07:53:57 k-kondo Exp $
Postgres documentation
-->

<refentry id="SQL-REVOKE">
 <refmeta>
  <refentrytitle id="SQL-REVOKE-TITLE">
   REVOKE
  </refentrytitle>
  <refmiscinfo>SQL<!-- - Language Statements-->言語</refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>
   REVOKE
  </refname>
  <refpurpose>
   <!--Revokes access privilege from a user, a group or all users.-->
   ユーザー、グループ、すべてのユーザーからアクセス権限を剥奪します。<indexterm><primary>REVOKE</primary></indexterm><indexterm><primary>SQL</primary><secondary>REVOKE</secondary></indexterm><indexterm><primary sortas="けんげん">権限</primary><secondary sortas="はくだつ">剥奪</secondary></indexterm><indexterm><primary sortas="ゆーざー">ユーザー</primary><secondary sortas="けんげん">権限</secondary><tertiary sortas="はくだつ">剥奪</tertiary></indexterm><indexterm><primary sortas="ぐるーぷ">グループ</primary><secondary sortas="けんげん">権限</secondary><tertiary sortas="はくだつ">剥奪</tertiary></indexterm>
  </refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <refsynopsisdivinfo>
   <date>1999-07-20</date>
  </refsynopsisdivinfo>
<synopsis>
REVOKE <replaceable class="PARAMETER">privilege</replaceable> [, ...]
    ON <replaceable class="PARAMETER">object</replaceable> [, ...]
    FROM { PUBLIC | GROUP <replaceable class="PARAMETER">groupname</replaceable> | <replaceable class="PARAMETER">username</replaceable> }
</synopsis>

  <refsect2 id="R2-SQL-REVOKE-1">
   <refsect2info>
    <date>1998-09-24</date>
   </refsect2info>
   <title>
    <!--Inputs-->入力
   </title>

    <variablelist>
     <varlistentry>
      <term><replaceable class="PARAMETER">privilege</replaceable></term>
      <listitem>
       <para>
	<!--The possible privileges are:-->
        下記の権限を設定することができます。
</para>

	<variablelist>
	<varlistentry>
	  <term>SELECT</term>
	  <listitem>
	   <para>
	    <!--Privilege to access all of the columns of a specific
	    table/view.-->
            特定のテーブル/ビューのすべての列にアクセスする権限。
	   </para>
	  </listitem>
	</varlistentry>

	 <varlistentry>
	  <term>INSERT</term>
	  <listitem>
	   <para>
	    <!--Privilege to insert data into all columns of a
	    specific table.-->
            特定のテーブル内のすべての列にデータを挿入する権限。
	   </para>
	  </listitem>
	 </varlistentry>

	 <varlistentry>
	  <term>UPDATE</term>
	  <listitem>
	   <para>
	    <!--Privilege to update all columns of a specific
	    table.-->
            特定のテーブルのすべての列の更新を行う権限。
	   </para>
	  </listitem>
	 </varlistentry>

	 <varlistentry>
	  <term>DELETE</term>
	  <listitem>
	   <para>
	    <!--Privilege to delete rows from a specific table.-->
            特定のテーブルの行を削除する権限。
	   </para>
	  </listitem>
	 </varlistentry>

	 <varlistentry>
	  <term>RULE</term>
	  <listitem>
	   <para>
	    <!--Privilege to define rules on table/view.
	    (See
	    <xref linkend="sql-createrule" endterm="sql-createrule-title">).-->
            テーブル/ビューにルールを設定する権限（<xref linkend="sql-createrule" endterm="sql-createrule-title">を参照してください）。
	   </para>
	  </listitem>
	 </varlistentry>

	 <varlistentry>
	  <term>ALL</term>
	  <listitem>
	   <para>
	    <!--Rescind all privileges.-->
            すべての権限。
	   </para>
	  </listitem>
	 </varlistentry>
	</variablelist>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><replaceable class="PARAMETER">object</replaceable></term>
      <listitem>
       <para>
	<!--The name of an object from which to revoke access.

	The possible objects are:-->

        アクセス権限を取り上げるオブジェクトの名前です。下記のオブジェクトを指定することができます。
</para>

	<itemizedlist spacing="compact" mark="bullet">
	 <listitem>
	  <para>
	   <!--table -->テーブル
	  </para>
	 </listitem>

	 <listitem>
	  <para>
	   <!--view -->ビュー
	  </para>
	 </listitem>

	 <listitem>
	  <para>
	   <!--sequence-->シーケンス
	  </para>
	 </listitem>

	</itemizedlist>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><replaceable class="PARAMETER">group</replaceable></term>
      <listitem>
       <para>
	<!--The name of a group from whom to revoke privileges.-->
        権限を取り上げるグループの名前です。
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><replaceable class="PARAMETER">username</replaceable></term>
      <listitem>
       <para>
	<!--The name of a user from whom revoke privileges. Use the PUBLIC keyword
	to specify all users.-->
        権限を取り上げるユーザーの名前です。全ユーザーを指定する場合はPUBLICキーワードを使用してください。
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>PUBLIC</term>
      <listitem>
       <para>
	<!--Rescind the specified privilege(s) for all users.-->
        全ユーザーに与えられている、指定された（複数の）権限を無効にします。
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect2>

  <refsect2 id="R2-SQL-REVOKE-2">
   <refsect2info>
    <date>1998-09-24</date>
   </refsect2info>
   <title>
    <!--Outputs-->出力
   </title>

    <variablelist>
     <varlistentry>
      <term><computeroutput>
CHANGE
       </computeroutput></term>
      <listitem>
       <para>
	<!--Message returned if successfully.-->
        成功時に返されるメッセージです。
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><computeroutput>
ERROR
       </computeroutput></term>
      <listitem>
       <para>
	<!--Message returned if object is not available or impossible
	to revoke privileges from a group or users.-->
       指定されたオブジェクトが利用不可能であった場合、もしくは、グループまたはユーザーの権限を取り上げることができなかった場合に返されるメッセージです。
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
  </refsect2>
 </refsynopsisdiv>

 <refsect1 id="R1-SQL-REVOKE-1">
  <refsect1info>
   <date>1998-09-24</date>
  </refsect1info>
  <title>
   <!--Description-->説明
  </title>
  <para>
   <!--<command>REVOKE</command> allows creator of an object to revoke permissions granted
   before, from all users (via PUBLIC) or a certain user or group.-->

   オブジェクトの作成者は、以前にすべてのユーザー（PUBLIC）あるいは、特定のユーザーやグループに与えられた権限を、<command>REVOKE</command>を使って取り上げることができます。

  </para>

  <refsect2 id="R2-SQL-REVOKE-3">
   <refsect2info>
    <date>1998-09-24</date>
   </refsect2info>
   <title>
    <!--Notes-->注釈
   </title>
   <para>
    <!--Refer to psql &bsol;z command for further information about permissions 
    on existing objects:-->

    既存のオブジェクトに対する権限についての詳しい情報を知るには<command>psql &bsol;z</command>を使います。
</para>

<programlisting>
	  Database    = lusitania
   +------------------+---------------------------------------------+
   |  Relation        |           Access permissions                |
   +------------------+---------------------------------------------+
   | mytable          | {"=rw","miriam=arwR","group todos=rw"}      |
   +------------------+---------------------------------------------+
   Legend:
         uname=arwR -- privileges granted to a user
                      （ユーザーに与えられた権限）
   group gname=arwR -- privileges granted to a GROUP
                      （グループに与えられた権限）
              =arwR -- privileges granted to PUBLIC
                      （PUBLIC――すべてのユーザーに与えられた権限）

                  r -- SELECT
                  w -- UPDATE/DELETE
                  a -- INSERT
                  R -- RULE
               arwR -- ALL
</programlisting>

<para>
       <!--［訳注：上記の表では「Grant/Revoke Permissions」となっていますが、現在は「Access permissions」となっています。］-->
   </para>

   <tip>
    <para>
     <!--Currently, to create a GROUP you have to insert 
     data manually into table pg_group as:-->

     現在のところ、グループを作成するには下記のようにpg_groupテーブルに手動でデータを追加しなければいけません<footnote><para>訳注：バージョン7.0からCREATE GROUPを使ってグループにデータを追加できます</para></footnote>。
</para>

<programlisting>
INSERT INTO pg_group VALUES ('todos');
CREATE USER miriam IN GROUP todos;
</programlisting>
   </tip>

  </refsect2>
 </refsect1>

 <refsect1 id="R1-SQL-REVOKE-2">
  <title>
   <!--Usage-->使用方法
  </title>
  <para>
   <!--Revoke insert privilege from all users on table
   <literal>films</literal>:-->

   <literal>films</literal>テーブルにデータを追加する権限をすべてのユーザーから取り上げるには以下のようにします。
</para>

<programlisting>
REVOKE INSERT ON films FROM PUBLIC;
</programlisting>

  <para>
   <!--Revoke all privileges from user <literal>manuel</literal> on view <literal>kinds</literal>:-->
   ビュー<literal>kinds</literal>に関するすべての権限をユーザー<literal>manuel</literal>から取り上げるには以下のようにします。
</para>

<programlisting>  
REVOKE ALL ON kinds FROM manuel;
</programlisting>
 </refsect1>

 <refsect1 id="R1-SQL-REVOKE-3">
  <title>
   <!--Compatibility-->互換性
  </title>

  <refsect2 id="R2-SQL-REVOKE-4">
   <refsect2info>
    <date>1998-09-01</date>
   </refsect2info>
   <title>
    SQL92
   </title>

   <para>
    <!--The SQL92 syntax for <command>REVOKE</command>
    has additional capabilities for rescinding
    privileges, including those on individual columns in tables:-->

    SQL92の構文では、<command>REVOKE</command>は、これらの機能に加え、テーブル内の各カラムに対する権限についても無効にすることができます。

    <variablelist>
     <varlistentry>
      <term><replaceable class="parameter">column</replaceable> ON <replaceable class="parameter">object</replaceable></term>
      <listitem>
<synopsis>
REVOKE { SELECT | DELETE | USAGE | ALL PRIVILEGES } [, ...]
    ON <replaceable class="parameter">object</replaceable>
    FROM { PUBLIC | <replaceable class="parameter">username</replaceable> [, ...] } { RESTRICT | CASCADE }
REVOKE { INSERT | UPDATE | REFERENCES } [, ...] [ ( <replaceable class="parameter">column</replaceable> [, ...] ) ]
    ON <replaceable class="parameter">object</replaceable>
    FROM { PUBLIC | <replaceable class="parameter">username</replaceable> [, ...] } { RESTRICT | CASCADE }
</synopsis>

       <para>
	<!--Refer to
	<xref linkend="sql-grant" endterm="sql-grant-title">
	for details on individual fields.-->
        個々のフィールドについての詳細については<xref linkend="sql-grant" endterm="sql-grant-title">を参照してください。
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term>REVOKE GRANT OPTION FOR <replaceable class="parameter">privilege</replaceable></term>
      <listitem>
<synopsis>
 [, ...]
    ON <replaceable class="parameter">object</replaceable>
    FROM { PUBLIC | <replaceable class="parameter">username</replaceable> [, ...] } { RESTRICT | CASCADE }
</synopsis>

       <para>
	<!--Rescinds authority for a user to grant the specified privilege
	to others.
	Refer to
	<xref linkend="sql-grant" endterm="sql-grant-title">
	for details on individual fields.-->
        あるユーザーが特定の権限を他のユーザーに付与できるようにする権限を無効にします。個々のフィールドについての詳細については<xref linkend="sql-grant" endterm="sql-grant-title">を参照してください。
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
   </para>

   <para>
    <!--The possible objects are:-->
    設定可能なオブジェクトは下記のものです。
</para>
    <simplelist>
     <member>
      [ TABLE ]<!-- table/view-->――テーブル/ビュー
     </member>
     <member>
      CHARACTER SET<!-- character-set-->――文字セット
     </member>
     <member>
      COLLATION<!--collation-->――照合順
     </member>
     <member>
      TRANSLATION<!-- translation-->――翻訳
     </member>
     <member>
      DOMAIN<!-- domain-->――ドメイン
     </member>
    </simplelist>

   <para> 
    <!--If user1 gives a privilege WITH GRANT OPTION to user2,
    and user2 gives it to user3 then user1 can revoke
    this privilege in cascade using the CASCADE keyword.-->

    user1がuser2にWITH GRANT OPTION権限を付与し、そして、user2がuser3にこの権限を付与した場合、user1はCASCADEキーワードを使用して数珠つなぎに権限を取り上げることができます。

   </para>

   <para>
    <!--If user1 gives a privilege WITH GRANT OPTION to user2,
    and user2 gives it to user3, then if user1 tries to revoke
    this privilege it fails if he specify the RESTRICT
    keyword.-->

    user1がWITH GRANT OPTION権限をuser2に付与し、そして、user2がuser3にこの権限を付与した場合、user1はRESTRICTキーワードを付けると、権限の取り上げに失敗します。

   </para>
  </refsect2>
 </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:"/usr/lib/sgml/catalog"
sgml-local-ecat-files:nil
End:
-->
