aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/config.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/config.sgml')
-rw-r--r--doc/src/sgml/config.sgml270
1 files changed, 270 insertions, 0 deletions
diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
new file mode 100644
index 00000000000..bdb881203f1
--- /dev/null
+++ b/doc/src/sgml/config.sgml
@@ -0,0 +1,270 @@
+<chapter id="config">
+<title>Configuration Options</title>
+
+<Sect1>
+<Title>Locale Support</Title>
+
+<Para>
+<Note>
+<Para>
+Written by Oleg Bartunov.
+See <ULink url="http://www.sai.msu.su/~megera/postgres/">Oleg's web page</ULink>
+ for additional information on locale and Russian language support.
+
+</Para>
+</Note>
+While doing a project for a company in Moscow, Russia,
+I encountered the problem that postgresql had no
+support of national alphabets. After looking for possible workarounds
+I decided to develop support of locale myself.
+I'm not a C-programer but already had some experience with locale programming
+when I work with perl
+(debugging) and glimpse. After several days of digging through
+ the <ProductName>Postgres</ProductName> source tree I made very minor corections to
+src/backend/utils/adt/varlena.c and src/backend/main/main.c and got what I needed!
+I did support only for
+LC_CTYPE and LC_COLLATE, but later LC_MONETARY was added by others. I got many
+messages from people about this patch so I decided to send it to developers
+and (to my surprise) it was
+incorporated into postgresql distribution.
+
+<Para>
+ People often complain that locale doesn't work for them.
+There are several common mistakes:
+
+<ItemizedList>
+<ListItem>
+<Para>
+ Didn't properly configure postgresql before compilation.
+ You must run configure with --enable-locale option to enable locale support.
+ Didn't setup environment correctly when starting postmaster.
+ You must define environment variables $LC_CTYPE and $LC_COLLATE
+before running postmaster
+ because backend gets information about locale from environment.
+I use following shell script
+ (runpostgres):
+
+<ProgramListing>
+ #!/bin/sh
+
+ export LC_CTYPE=koi8-r
+ export LC_COLLATE=koi8-r
+ postmaster -B 1024 -S -D/usr/local/pgsql/data/ -o '-Fe'
+</ProgramListing>
+
+ and run it from rc.local as
+
+<ProgramListing>
+ /bin/su - postgres -c "/home/postgres/runpostgres"
+</ProgramListing>
+
+</Para>
+</ListItem>
+<ListItem>
+<Para>
+ Broken locale support in OS (for example, locale support in libc
+under Linux several times has changed
+ and this caused a lot of problems). Latest perl has also support of
+locale and if locale is broken <command>perl -v</command> will
+ complain something like:
+
+<programlisting>
+ 8:17[mira]:~/WWW/postgres>setenv LC_CTYPE not_exist
+ 8:18[mira]:~/WWW/postgres>perl -v
+ perl: warning: Setting locale failed.
+ perl: warning: Please check that your locale settings:
+ LC_ALL = (unset),
+ LC_CTYPE = "not_exist",
+ LANG = (unset)
+ are supported and installed on your system.
+ perl: warning: Falling back to the standard locale ("C").
+</programlisting>
+
+</Para>
+</ListItem>
+<ListItem>
+<Para>
+ Wrong location of locale files!
+
+ Possible locations include:
+<filename>/usr/lib/locale</filename>
+(Linux, Solaris), <filename>/usr/share/locale</filename> (Linux),
+<filename>/usr/lib/nls/loc</filename> (DUX 4.0).
+
+ Check <command>man locale</command> to find the correct location.
+Under Linux I did a symbolic link between <filename>/usr/lib/locale</filename> and
+ <filename>/usr/share/locale</filename> to be sure that
+the next libc will not break my locale.
+</Para>
+</ListItem>
+</ItemizedList>
+
+<Sect2>
+<Title>What are the Benefits?</Title>
+
+<Para>
+You can use ~* and order by operators for strings contain characters
+from national alphabets. Non-english users
+definitely need that. If you won't use locale stuff just undefine
+the USE_LOCALE variable.
+
+<Sect2>
+<Title>What are the Drawbacks?</Title>
+
+<Para>
+There is one evident drawback of using locale - it's speed!
+So, use locale only if you really need it.
+
+<Sect1>
+<Title>Kerberos Authentication</Title>
+
+<Para>
+<productname>Kerberos</productname> is an industry-standard secure authentication
+system suitable for distributed computing over a public network.
+
+<sect2>
+<title>Availability</title>
+
+<para>
+The
+<productname>Kerberos</productname>
+authentication system is not distributed with <Productname>Postgres</Productname>. Versions of
+<productname>Kerberos</productname>
+are typically available as optional software from operating system
+vendors. In addition, a source code distribution may be obtained through
+<ulink url="ftp://athena-dist.mit.edu">MIT Project Athena</ulink>.
+
+<note>
+<para>
+You may wish to obtain the MIT version even if your
+vendor provides a version, since some vendor ports have been
+deliberately crippled or rendered non-interoperable with the MIT
+version.
+</note>
+Users located outside the United States of America and
+Canada are warned that distribution of the actual encryption code in
+<productname>Kerberos</productname>
+is restricted by U. S. Government export regulations.
+
+<para>
+Inquiries regarding your <productname>Kerberos</productname>
+should be directed to your vendor or
+<ulink url="info-kerberos@athena.mit.edu">MIT Project Athena</ulink>.
+Note that <acronym>FAQL</acronym>s
+(Frequently-Asked Questions Lists) are periodically posted to the
+<ulink url="mailto:kerberos@ATHENA.MIT.EDU"><productname>Kerberos</productname> mailing list</ulink>
+(send
+<ulink url="mailto:kerberos-request@ATHENA.MIT.EDU">mail to subscribe</ulink>),
+and
+<ulink url="news:comp.protocols.kerberos">USENET news group</ulink>.
+
+<sect2>
+<title>Installation</title>
+
+<para>
+Installation of
+<productname>Kerberos</productname>
+itself is covered in detail in the
+<citetitle>Kerberos Installation Notes</citetitle> .
+Make sure that the server key file (the <filename>srvtab</filename>
+or <filename>keytab</filename>)
+is somehow readable by the <productname>Postgres</productname> account.
+
+<para>
+<Productname>Postgres</Productname> and its clients can be compiled to use
+either Version 4 or Version 5 of the MIT
+<productname>Kerberos</productname>
+protocols by setting the
+<envar>KRBVERS</envar>
+variable in the file <filename>src/Makefile.global</filename> to the
+appropriate value. You can also change the location where
+ <Productname>Postgres</Productname>
+expects to find the associated libraries, header files and its own
+server key file.
+
+<para>
+After compilation is complete, <Productname>Postgres</Productname>
+ must be registered as a <productname>Kerberos</productname>
+service. See the
+<citetitle>Kerberos Operations Notes</citetitle>
+and related manual pages for more details on registering services.
+
+<sect2>
+<title>Operation</title>
+
+<para>
+After initial installation, <Productname>Postgres</Productname>
+should operate in all ways as a normal
+<productname>Kerberos</productname>
+service. For details on the use of authentication, see the
+<citetitle>PostgreSQL User's Guide</citetitle> reference sections
+for <application>postmaster</application>
+and <application>psql</application>.
+
+<para>
+In the
+<productname>Kerberos</productname>
+Version 5 hooks, the following assumptions are made about user
+and service naming:
+
+<itemizedlist>
+<listitem>
+<para>
+User principal names (anames) are assumed to
+contain the actual Unix/<Productname>Postgres</Productname> user name
+ in the first component.
+
+<listitem>
+<para>
+The <Productname>Postgres</Productname> service is assumed to be have two components,
+ the service name and a hostname, canonicalized as in Version 4 (i.e., with all domain
+suffixes removed).
+
+</itemizedlist>
+
+<para>
+<table tocentry="1">
+<title>Kerberos Parameter Examples</title>
+<titleabbrev>Kerberos</titleabbrev>
+
+<tgroup cols="2">
+<thead>
+<row>
+<entry>
+Parameter
+</entry>
+<entry>
+Example
+</entry>
+
+<tbody>
+<row>
+<entry>
+user
+</entry>
+<entry>
+frew@S2K.ORG
+</entry>
+
+<row>
+<entry>
+user
+</entry>
+<entry>
+aoki/HOST=miyu.S2K.Berkeley.EDU@S2K.ORG
+</entry>
+
+<row>
+<entry>
+host
+</entry>
+<entry>
+postgres_dbms/ucbvax@S2K.ORG
+</entry>
+</tbody>
+</tgroup>
+</table>
+
+<para>
+Support for Version 4 will disappear sometime after the production
+release of Version 5 by MIT.