PostgreSql服务器的配置(三)

2014-11-24 10:45:54 · 作者: · 浏览: 2
p|restart

进行人工控制;
5.Postgre sql数据库的用户管理和存取权限
和Mysql不同的是,Postgresql的用户管理和权限控制,是截然不同的一套体制,有点类似于传统的关系数据库
在"pg_hba.conf"文件的PG_DATA段可以用ip地址和用户名限制对能数据库的连接,这里你可以指定什么样的IP地址能够连接数据库,什么样的IP地址是不允许使用数据库资源的;
在数据库用户以及数据库方面postgresql用系统命令进行管理:
createuser 允许声明可访问 Postgres的用户.destroyuser删除用户以及拒绝他们访问Postgres。
这些命令只影响用户与 Postgres;而对用户的其他操作系统级的权限或状态没有影响
用“createuser”命令在数据库中定义一个新超级用户:
# su postgres 
$ createuser 
Enter name of user to add ---> admin 
Enter users postgres ID or RETURN to use unix user ID: 500 -> 
Is user "admin" allowed to create databases (y/n) y 
Is user "admin" a superuser  (y/n) y 
createuser: admin was successfully added 

用“destroyuser”命令在数据库中删除用户: 

# su postgres 
$ destroyuser 
Enter name of user to delete ---> admin 
destroyuser: delete of user admin was successful. 

用“createdb”命令创建新的数据库: 

# su postgres 
$ createdb dbname 

用“destorydb”命令删除数据库: 
# su postgres 
$ destorydb dbname 

6 使用psql操作postgresql数据库
postgresql和 mysql一样拥有一套独立的客户端程序,使用标准的SQL语句对数据库进行操作和管理;
$psql databasename 
Welcome to the POSTGRESQL interactive sql monitor: 
Please read the file COPYRIGHT for copyright terms of POSTGRESQL 
[PostgreSQL 6.5.3 on i686-pc-linux-gnu, compiled by egcs ] 
type   for help on slash commands 
type q to quit 
type g or terminate with semicolon to execute query 
You are currently connected to the database: databasename 

告诉用户已经连接到数据库databasename
7.postgresql数据库的备份
Postgres 提供两个工具备份你的 系统:pg_dump 备份独立的数据库以及 pg_dumpall 在一个步骤里备份你的数据库节点。
可以用下面的命令备份一个独立的数据库:
$ pg_dump dbname > dbname.pgdump 

然后可以用下面命令恢复
$cat dbname.pgdump | psql dbname 

这个技巧可以用于把数据库移动到一个新位置,然后重新命名现有数据库。
Postgres 允许表的尺寸大于你的系统的最大文件尺寸,可能把表输出到一个文件会有问题,生成的文件很可能比你的系统允许的最大文件大。
使用压缩的输出格式:
$ pg_dump dbname | gzip > filename.dump.gz 

重载: 

$ createdb dbname 
$ gunzip -c filename.dump.gz | psql dbname 

或 

$ cat filename.dump.gz | gunzip | psql dbname 

使用分割(split): 

$ pg_dump dbname | split -b 1m - filename.dump. 

重载: 

$createdb dbname 
$ cat filename.dump.* | pgsql dbname 

当然,文件名(filename)和 pg_dump 输出的内容不必与数据库名一样。同样,重载的数据库可以有任意新的名称,所以这个机制还适用于给数据库改名。
PostgreSQL已经是不利新闻的一个牺牲品,被列为一个学术的玩物,为真实世界使用太复杂。在过去这可能是对的,然而不再是。它有一个远远超过其他进展缓慢的数据库甚至一些企业数据库的功能集,然而, 它缺乏用来衡量达到高价产品的很多管理特征和调节能力,这些特征是数据库决不会一般水平的数据库所要求的,并且甚至他们不会注意到这很少的缺点。PostgreSQL在Unix数据库竞技场成为了一个真正的竞争者。