mirror of https://github.com/postgres/postgres
I'm still working on the has_role function and information_schema changes.REL8_1_STABLE
parent
f5df006a04
commit
e5d6b91220
@ -0,0 +1,116 @@ |
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/ref/set_role.sgml,v 1.1 2005/07/25 22:12:31 tgl Exp $ --> |
||||
<refentry id="SQL-SET-ROLE"> |
||||
<refmeta> |
||||
<refentrytitle id="sql-set-role-title">SET ROLE</refentrytitle> |
||||
<refmiscinfo>SQL - Language Statements</refmiscinfo> |
||||
</refmeta> |
||||
|
||||
<refnamediv> |
||||
<refname>SET ROLE</refname> |
||||
<refpurpose>set the current user identifier of the current session</refpurpose> |
||||
</refnamediv> |
||||
|
||||
<indexterm zone="sql-set-role"> |
||||
<primary>SET ROLE</primary> |
||||
</indexterm> |
||||
|
||||
<refsynopsisdiv> |
||||
<synopsis> |
||||
SET [ SESSION | LOCAL ] ROLE <replaceable class="parameter">rolename</replaceable> |
||||
SET [ SESSION | LOCAL ] ROLE NONE |
||||
RESET ROLE |
||||
</synopsis> |
||||
</refsynopsisdiv> |
||||
|
||||
<refsect1> |
||||
<title>Description</title> |
||||
|
||||
<para> |
||||
This command sets the current user |
||||
identifier of the current SQL-session context to be <replaceable |
||||
class="parameter">rolename</replaceable>. The role name may be |
||||
written as either an identifier or a string literal. Using this |
||||
command, it is possible to either add privileges or restrict one's |
||||
privileges. |
||||
</para> |
||||
|
||||
<para> |
||||
The specified <replaceable class="parameter">rolename</replaceable> |
||||
must be a role that the current session user is a member of. |
||||
(If the session user is a superuser, any role can be selected.) |
||||
</para> |
||||
|
||||
<para> |
||||
The <literal>SESSION</> and <literal>LOCAL</> modifiers act the same |
||||
as for the regular <xref linkend="SQL-SET" endterm="SQL-SET-title"> |
||||
command. |
||||
</para> |
||||
|
||||
<para> |
||||
The <literal>NONE</> and <literal>RESET</> forms reset the current |
||||
user identifier to be the current session user identifier. |
||||
These forms may be executed by any user. |
||||
</para> |
||||
</refsect1> |
||||
|
||||
<refsect1> |
||||
<title>Examples</title> |
||||
|
||||
<programlisting> |
||||
SELECT SESSION_USER, CURRENT_USER; |
||||
|
||||
session_user | current_user |
||||
--------------+-------------- |
||||
peter | peter |
||||
|
||||
SET ROLE 'paul'; |
||||
|
||||
SELECT SESSION_USER, CURRENT_USER; |
||||
|
||||
session_user | current_user |
||||
--------------+-------------- |
||||
peter | paul |
||||
</programlisting> |
||||
</refsect1> |
||||
|
||||
<refsect1> |
||||
<title>Compatibility</title> |
||||
|
||||
<para> |
||||
<productname>PostgreSQL</productname> |
||||
allows identifier syntax (<literal>"rolename"</literal>), while |
||||
the SQL standard requires the role name to be written as a string |
||||
literal. SQL does not allow this command during a transaction; |
||||
<productname>PostgreSQL</productname> does not make this |
||||
restriction because there is no reason to. |
||||
The <literal>SESSION</> and <literal>LOCAL</> modifiers are a |
||||
<productname>PostgreSQL</productname> extension, as is the |
||||
<literal>RESET</> syntax. |
||||
</para> |
||||
</refsect1> |
||||
|
||||
<refsect1> |
||||
<title>See Also</title> |
||||
|
||||
<simplelist type="inline"> |
||||
<member><xref linkend="sql-set-session-authorization" endterm="sql-set-session-authorization-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: |
||||
--> |
Loading…
Reference in new issue