<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/create_group.sgml,v 1.15 2005/01/04 00:39:53 tgl Exp $
PostgreSQL documentation
-->

<refentry id="SQL-CREATEGROUP">
 <refmeta>
  <refentrytitle id="sql-creategroup-title">CREATE GROUP</refentrytitle>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>

 <refnamediv>
  <refname>CREATE GROUP</refname>
  <refpurpose>define a new user group</refpurpose>
 </refnamediv>

 <indexterm zone="sql-creategroup">
  <primary>CREATE GROUP</primary>
 </indexterm>

 <refsynopsisdiv>
<synopsis>
CREATE GROUP <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <replaceable class="PARAMETER">option</replaceable> [ ... ] ]

where <replaceable class="PARAMETER">option</replaceable> can be:

     SYSID <replaceable class="PARAMETER">gid</replaceable>
   | USER  <replaceable class="PARAMETER">username</replaceable> [, ...]
</synopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>
   <command>CREATE GROUP</command> will create a new group of users.
   You must be a database superuser to use this command.
  </para>

  <para>
   Note that both users and groups are defined at the database cluster
   level, and so are valid in all databases in the cluster.
  </para>

  <para>
   Use <xref linkend="SQL-ALTERGROUP" endterm="SQL-ALTERGROUP-title">
   to change a group's membership, and <xref linkend="SQL-DROPGROUP"
   endterm="SQL-DROPGROUP-title"> to remove a group.
  </para>  
 </refsect1> 
  
 <refsect1>
  <title>Parameters</title>

    <variablelist>
     <varlistentry>
      <term><replaceable class="parameter">name</replaceable></term>
      <listitem>
       <para>
        The name of the group.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><replaceable class="parameter">gid</replaceable></term>
      <listitem>
       <para>
        The <literal>SYSID</literal> clause can be used to choose
        the <productname>PostgreSQL</productname> group ID of the new
        group.
        This is normally not necessary, but may
        be useful if you need to recreate a group referenced in the
        permissions of some object.
       </para>
       <para>
        If this is not specified, the highest assigned group ID plus one
        (with a minimum of 100) will be used as default.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry>
      <term><replaceable class="parameter">username</replaceable></term>
      <listitem>
       <para>
        A list of users to include in the group. The users must already exist.
       </para>
      </listitem>
     </varlistentry>

    </variablelist>
 </refsect1>

 <refsect1>
  <title>Examples</title>

  <para>
   Create an empty group:
<programlisting>
CREATE GROUP staff;
</programlisting>
  </para>

  <para>
   Create a group with members:
<programlisting>
CREATE GROUP marketing WITH USER jonathan, david;
</programlisting>
  </para>
 </refsect1>
 
 <refsect1>
  <title>Compatibility</title>
  
  <para>
   There is no <command>CREATE GROUP</command> statement in the SQL
   standard.  Roles are similar in concept to groups.
  </para>
 </refsect1>

 <refsect1>
  <title>See Also</title>

  <simplelist type="inline">
   <member><xref linkend="sql-altergroup" endterm="sql-altergroup-title"></member>
   <member><xref linkend="sql-dropgroup" endterm="sql-dropgroup-title"></member>
  </simplelist>
 </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:
-->
