信息来源: <
postgres的管理都可以通过交互前端psql命令去完成.
但是为了方便, 还有几个细化的命令(这此命令实际上就是SQL的wrapper!):
1. createdb
注: 一旦创建了一个数据库, 创建者就是该数据库的拥有者和管理员. 一般情况下为用户pgsql, linux下应该为postgres, 因为pgsql一般是数据库管理员使用的帐号, 当然, 不使用pgsql用户权限也可以正常使用createdb, 这取决于postgres的认证方式. 否则会出现下面的信息:
[jessinio@study ~]$ psql
psql: FATAL: database "jessinio" does not exist
[jessinio@study ~]$ createdb jessinio
createdb: could not connect to database postgres: FATAL: role "jessinio" does not exist
上面的主要信息是: jessinio无法使用createdb, 这是因为在postgres服务中, 没有jessinio这个role(角色)!
role表示了:要连接和使用数据库, 第一条件是要在postgres系统中存在相应的role才能登陆!
* 注意: 有了相应的role, 并不等于有了root权限(superuser)!
* 权限总的来说有两种: 对DBMSs的权限, 还有一种是对DB的权限
role如何去创建与修改, 新创建的role对DBMSs有哪些权限?
答案是:createuser
下面是一些选项和它们的默认值:
--superuser
--no-superuser: Ture
--createdb
--no-createdb: Ture
--createrole
--no-createrole: Ture
--login: Ture
--no-login
--inherit
--no-inherit: Ture
--connection-limit: no limit
--encrypted
--unencrypted: Ture
* Ture表示默认值.
下面是实际情况:
[pgsql@study /usr/home/jessinio]$ createuser jessinio
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE
好了, 现在有jessinio用户有了对DBMSs操作的role了, createdb吧:
[jessinio@study ~]$ createdb jessinio
CREATE DATABASE
一切顺利!!!!!
去哪里使用万能的SQL呢? 答案是: psql
[jessinio@study ~]$ psql
Welcome to psql 8.2.9, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
jessinio=>
进入了.
留意一下, 就可以知道, jessinio用户登陆是不用输入密码的. 为什么呢?
这与postgres的认证系统有关. postgres的认证方式写在下一篇blog中.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.