diff options
Diffstat (limited to 'doc/src/sgml/ref/set_session_auth.sgml')
-rw-r--r-- | doc/src/sgml/ref/set_session_auth.sgml | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/doc/src/sgml/ref/set_session_auth.sgml b/doc/src/sgml/ref/set_session_auth.sgml new file mode 100644 index 00000000000..ba3ec6fb542 --- /dev/null +++ b/doc/src/sgml/ref/set_session_auth.sgml @@ -0,0 +1,103 @@ +<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/set_session_auth.sgml,v 1.1 2001/05/08 21:06:42 petere Exp $ --> +<refentry id="SQL-SET-SESSION-AUTHORIZATION"> + <docinfo> + <date>2001-04-21</date> + </docinfo> + + <refmeta> + <refentrytitle>SET SESSION AUTHORIZATION</refentrytitle> + <refmiscinfo>SQL - Language Statements</refmiscinfo> + </refmeta> + + <refnamediv> + <refname>SET SESSION AUTHORIZATION</refname> + <refpurpose>Set the session user identifier and the current user identifier + of the current SQL-session context</refpurpose> + </refnamediv> + + <refsynopsisdiv> +<synopsis> +SET SESSION AUTHORIZATION '<parameter>username</parameter>' +</synopsis> + </refsynopsisdiv> + + <refsect1> + <title>Description</title> + + <para> + This command sets the session user identifier and the current user + identifer of the current SQL-session context to be + <parameter>username</parameter>. + </para> + + <para> + The session user identifier is initially set to be the (possibly + authenticated) user name provided by the client. The current user + identifier is normally equal to the session user identifier, but + may change temporarily in the context of <quote>setuid</quote> + functions and similar mechanisms. The current user identifer is + relevant for permission checking. + </para> + + <para> + Execution of this command is only permitted if the initial session + user (the <firstterm>authenticated user</firstterm>) had the + superuser privilege. This permission is kept for the duration of a + connection; for example, it is possible to temporarily become an + unprivileged user and later switch back to become a superuser. + </para> + </refsect1> + + <refsect1> + <title>Examples</title> + +<screen> +<userinput>SELECT SESSION_USER, CURRENT_USER;</userinput> + current_user | session_user +--------------+-------------- + peter | peter + +<userinput>SET SESSION AUTHORIZATION 'paul';</userinput> + +<userinput>SELECT SESSION_USER, CURRENT_USER;</userinput> + current_user | session_user +--------------+-------------- + paul | paul +</screen> + </refsect1> + + <refsect1> + <title>Compatibility</title> + + <simpara>SQL99</simpara> + + <para> + SQL99 allows some other expressions to appear in place of the + literal <parameter>username</parameter> which are not important in + practice. <application>PostgreSQL</application> allows identifier + syntax (<literal>"username"</literal>), which SQL does not. SQL + does not allow this command during a transaction; + <application>PostgreSQL</application> does not make + this restriction because there is no reason to. The + privileges necessary to execute this command are left + implementation-defined by the standard. + </para> + </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: +--> |