最近公司使用postgreSQL数据库进行应用开发,对用户、权限和数据库的使用有些和mysql不一致的地方,记下来供以后参考。
用户和角色
postgreSQL的用户和角色基本没有什么差别,只不过用户是默认有数据库的login权限的,而角色没有。
角色可以被当做一个用户、或者一个组。
摘取postgreSQL手册创建用户大纲:
CREATE ROLE name [ [ WITH ] option [ … ] ]
where option可以是:
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| CREATEUSER | NOCREATEUSER
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| REPLICATION | NOREPLICATION
| BYPASSRLS | NOBYPASSRLS
| CONNECTION LIMIT connlimit
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
| VALID UNTIL 'timestamp'
| IN ROLE role_name [, ...]
| IN GROUP role_name [, ...]
| ROLE role_name [, ...]
| ADMIN role_name [, ...]
| USER role_name [, ...]
| SYSID uid
用户登陆
psql -U username
password:
如下图:
创建用户
create user username;
删除用户
drop user username;
创建一个有密码的用户
create user username with password ‘password’;
创建角色
create role rolename;
角色用户此时是没有登陆权限的,可以登陆验证一下.
删除角色
drop role rolename;