create_role.sgml
来自「postgresql8.3.4源码,开源数据库」· SGML 代码 · 共 470 行 · 第 1/2 页
SGML
470 行
<!--$PostgreSQL: pgsql/doc/src/sgml/ref/create_role.sgml,v 1.10 2007/11/07 12:24:23 petere Exp $PostgreSQL documentation--><refentry id="SQL-CREATEROLE"> <refmeta> <refentrytitle id="sql-createrole-title">CREATE ROLE</refentrytitle> <refmiscinfo>SQL - Language Statements</refmiscinfo> </refmeta> <refnamediv> <refname>CREATE ROLE</refname> <refpurpose>define a new database role</refpurpose> </refnamediv> <indexterm zone="sql-createrole"> <primary>CREATE ROLE</primary> </indexterm> <refsynopsisdiv><synopsis>CREATE ROLE <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <replaceable class="PARAMETER">option</replaceable> [ ... ] ]where <replaceable class="PARAMETER">option</replaceable> can be: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | CONNECTION LIMIT <replaceable class="PARAMETER">connlimit</replaceable> | [ ENCRYPTED | UNENCRYPTED ] PASSWORD '<replaceable class="PARAMETER">password</replaceable>' | VALID UNTIL '<replaceable class="PARAMETER">timestamp</replaceable>' | IN ROLE <replaceable class="PARAMETER">rolename</replaceable> [, ...] | IN GROUP <replaceable class="PARAMETER">rolename</replaceable> [, ...] | ROLE <replaceable class="PARAMETER">rolename</replaceable> [, ...] | ADMIN <replaceable class="PARAMETER">rolename</replaceable> [, ...] | USER <replaceable class="PARAMETER">rolename</replaceable> [, ...] | SYSID <replaceable class="PARAMETER">uid</replaceable> </synopsis> </refsynopsisdiv> <refsect1> <title>Description</title> <para> <command>CREATE ROLE</command> adds a new role to a <productname>PostgreSQL</productname> database cluster. A role is an entity that can own database objects and have database privileges; a role can be considered a <quote>user</>, a <quote>group</>, or both depending on how it is used. Refer to <xref linkend="user-manag"> and <xref linkend="client-authentication"> for information about managing users and authentication. You must have <literal>CREATEROLE</> privilege or be a database superuser to use this command. </para> <para> Note that roles are defined at the database cluster level, and so are valid in all databases in the cluster. </para> </refsect1> <refsect1> <title>Parameters</title> <variablelist> <varlistentry> <term><replaceable class="parameter">name</replaceable></term> <listitem> <para> The name of the new role. </para> </listitem> </varlistentry> <varlistentry> <term><literal>SUPERUSER</literal></term> <term><literal>NOSUPERUSER</literal></term> <listitem> <para> These clauses determine whether the new role is a <quote>superuser</>, who can override all access restrictions within the database. Superuser status is dangerous and should be used only when really needed. You must yourself be a superuser to create a new superuser. If not specified, <literal>NOSUPERUSER</literal> is the default. </para> </listitem> </varlistentry> <varlistentry> <term><literal>CREATEDB</></term> <term><literal>NOCREATEDB</></term> <listitem> <para> These clauses define a role's ability to create databases. If <literal>CREATEDB</literal> is specified, the role being defined will be allowed to create new databases. Specifying <literal>NOCREATEDB</literal> will deny a role the ability to create databases. If not specified, <literal>NOCREATEDB</literal> is the default. </para> </listitem> </varlistentry> <varlistentry> <term><literal>CREATEROLE</literal></term> <term><literal>NOCREATEROLE</literal></term> <listitem> <para> These clauses determine whether a role will be permitted to create new roles (that is, execute <command>CREATE ROLE</command>). A role with <literal>CREATEROLE</literal> privilege can also alter and drop other roles. If not specified, <literal>NOCREATEROLE</literal> is the default. </para> </listitem> </varlistentry> <varlistentry> <term><literal>CREATEUSER</literal></term> <term><literal>NOCREATEUSER</literal></term> <listitem> <para> These clauses are an obsolete, but still accepted, spelling of <literal>SUPERUSER</literal> and <literal>NOSUPERUSER</literal>. Note that they are <emphasis>not</> equivalent to <literal>CREATEROLE</literal> as one might naively expect! </para> </listitem> </varlistentry> <varlistentry> <term><literal>INHERIT</literal></term> <term><literal>NOINHERIT</literal></term> <listitem> <para> These clauses determine whether a role <quote>inherits</> the privileges of roles it is a member of. A role with the <literal>INHERIT</literal> attribute can automatically use whatever database privileges have been granted to all roles it is directly or indirectly a member of. Without <literal>INHERIT</literal>, membership in another role only grants the ability to <command>SET ROLE</> to that other role; the privileges of the other role are only available after having done so. If not specified, <literal>INHERIT</literal> is the default. </para> </listitem> </varlistentry> <varlistentry> <term><literal>LOGIN</literal></term> <term><literal>NOLOGIN</literal></term> <listitem> <para> These clauses determine whether a role is allowed to log in; that is, whether the role can be given as the initial session authorization name during client connection. A role having the <literal>LOGIN</literal> attribute can be thought of as a user. Roles without this attribute are useful for managing database privileges, but are not users in the usual sense of the word. If not specified, <literal>NOLOGIN</literal> is the default, except when <command>CREATE ROLE</> is invoked through its alternative spelling <command>CREATE USER</>. </para> </listitem> </varlistentry> <varlistentry> <term><literal>CONNECTION LIMIT</literal> <replaceable class="parameter">connlimit</replaceable></term> <listitem> <para> If role can log in, this specifies how many concurrent connections the role can make. -1 (the default) means no limit. </para> </listitem> </varlistentry> <varlistentry> <term><literal>PASSWORD</> <replaceable class="parameter">password</replaceable></term> <listitem> <para> Sets the role's password. (A password is only of use for roles having the <literal>LOGIN</literal> attribute, but you can nonetheless define one for roles without it.) If you do not plan to use password authentication you can omit this option. If no password is specified, the password will be set to null and password authentication will always fail for that user. A null password can optionally be written explicitly as <literal>PASSWORD NULL</literal>. </para> </listitem> </varlistentry> <varlistentry> <term><literal>ENCRYPTED</></term> <term><literal>UNENCRYPTED</></term> <listitem> <para> These key words control whether the password is stored encrypted in the system catalogs. (If neither is specified, the default behavior is determined by the configuration parameter <xref linkend="guc-password-encryption">.) If the presented password string is already in MD5-encrypted format, then it is stored encrypted as-is, regardless of whether <literal>ENCRYPTED</> or <literal>UNENCRYPTED</> is specified (since the system cannot decrypt the specified encrypted password string). This allows reloading of encrypted passwords during dump/restore. </para> <para> Note that older clients might lack support for the MD5 authentication mechanism that is needed to work with passwords that are stored encrypted. </para> </listitem> </varlistentry> <varlistentry> <term><literal>VALID UNTIL</literal> '<replaceable class="parameter">timestamp</replaceable>'</term> <listitem> <para> The <literal>VALID UNTIL</literal> clause sets a date and time after which the role's password is no longer valid. If this clause is omitted the password will be valid for all time. </para> </listitem>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?