**********************************************
*基本操作
**********************************************
数据库操作
$ psql test
$ psql -h localhost -U username -W newpwd -p 5432 test
=# create database mail_db;
=# create database mail_db owner sunny;
=# drop database mail_db;
表操作
=# create table mail_sunny.com (
=# id int,
=# name varchar(50),
=# city varchar(50),
=# date date
=# );
简单查询
$ psql -l
查看当前的库,库主,编码;pgsql允许在服务端与客户端自动转码
备份 / 恢复
$ pg_dump > test_201405111403 (备份一个库)
$ psql test < test_201405111403
$ pg_dump -h localhost test | pssql -h 192.168.0.180 test
$ pg_dumpall > all_201405111407 (备份一个给出的集群中的每个数据库)
恢复时,需要数据库超级用户权限(用来恢复 用户和组的信息)
$ pg_dump test | gzip > test.gz
$ createdb test (恢复上面的备份)
$ gzunzip -c test.gz | psql test
备份分片
$ ps_dump test | split -b 10m - test.bak
$ createdb test
$ cat test.bak* | psql test
**********************************************
*账户管理(用户,组)
**********************************************
重置密码
=# alter user sunny password ‘anotherpwd‘;
新建用户
=# create user sunny;
(有用户 没密码;无法登录数据库的)
$ createruser sunny
$ dropuser sunny
=# create user sunny PASSWORD ‘newpwd‘;
成功添加用户后是有回显的
删除用户的时候,陷阱还挺多的。
给用户赋权
$ psql test -U sunny
=# create user hhpeng with password ‘hhpeng‘;
报错了;默认只有高级用户才有权限创建;
$ psql test -U postgres
=# create user sunny createuser;
创建用户的时候授权
=# alter user sunny createuer;
=# alter user sunny createdb;
=# \q
$ psql test -U sunny
=# create group tech;
=# alter group tech add user sunny;
=# alter group tech drop user sunny;
------------------------------------
权限:
------------------------------------
当创建一个库时,它属于一个用户(创建者)。需要其他用户能访问该库,需要授权。
权限分类:select insert update delete rule references trigger
create temporary execute usage "all privileges"
=# grant update on test to sunny;
=# grant select on test to group tech;
=# revoke all on test from sunny;
=# revoke all on test from public;
public:代表系统中的所有用户。