Postgresql创建管理员、命令行操作

初次接触Postgresql,稍微学习了下皮毛,将一些常用操作贴上来

首次登录
在终端中执行 psql 命令以登入。需要注意,Postgresql默认的管理员账户为postgres,没有名为root的账号,因此首次登录需先切换至 postgres 用户下,再执行 psql 命令

su postgres
postgres$ psql
psql (9.6.4)
Type "help" for help.
postgres=#

 

若要创建一个用户,可执行 CREATE USER 指令,如创建名为test的用户  (对应的删除命令为 DROP USER)

postgres=# CREATE USER test;
CREATE ROLE

若要创建一个带密码的用户,则使用

postgres=# CREATE USER test with password 'password';
CREATE ROLE

参考:https://www.postgresql.org/docs/8.0/static/sql-createuser.html

 

之后可以检查下 pg_roles 这个表看看此数据库上的用户状况

postgres=# select * from pg_roles;
rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcanlogin | rolreplication | rolconnlimit | rolpassword | rolvaliduntil | rolbypassrls | rolconfig | oid
-------------------+----------+------------+---------------+-------------+-------------+----------------+--------------+-------------+---------------+--------------+-----------+-------
postgres | t               | t                 | t                       | t                    | t                     | t                        | -1                     | ********        |                         | t                     |                  | 10
pg_signal_backend | f | t          | f                       | f                    | f                      | f                        | -1                     | ********        |                         | f                     |                  | 4200
test          | f               | t                 | f                       | f                    | t                     | f                        | -1                     | ********        |                         | f                     |                  | 16389
(4 rows)

 

rolname后各列对应的是该用户的权限,如创建用户的权限、创建数据库的权限、是否可以登录等。

如果要退出 psql 命令行,可以键入 \q 并回车。

 

除了在 psql 命令行中可以创建用户外,也可以在Linux 系统终端中创建 postgresql 用户,同样是切换到postgresql用户,执行的是createuser命令,以下是这个命令的用法

postgres$ createuser --help
createuser creates a new PostgreSQL role.Usage:
createuser [OPTION]... [ROLENAME]Options:
-c, --connection-limit=N 指定连接数限制 (默认: 不限)
-d, --createdb 给予新建数据库的权限
-D, --no-createdb 不允许新建数据库 (默认)
-e, --echo 显示发送到服务器的指令
-E, --encrypted 加密存储的密码
-g, --role=ROLE 指定该用户的权限继承某个用户的权限
-i, --inherit 启用权限继承 (默认)
-I, --no-inherit 不要启用权限继承
-l, --login role 允许该用户登录 (默认)
-L, --no-login 不允许该用户登录
-N, --unencrypted 不要加密存储的密码
-P, --pwprompt 指定新用户的密码
-r, --createrole 允许这个用户创建新的用户
-R, --no-createrole 不允许这个用户创建新的用户 (默认)
-s, --superuser 使新创建的用户成为管理员
-S, --no-superuser 使新创建的用户称为普通用户 (默认)
-V, --version 仅输出版本信息
--interactive 不使用默认值创建用户,当参数不给全时提示错误并退出
--replication 允许用户设置复制
--no-replication 不允许用户设置复制
-?, --help show this help, then exitConnection options:
-h, --host=HOSTNAME database server host or socket directory
-p, --port=PORT database server port
-U, --username=USERNAME user name to connect as (not the one to create)
-w, --no-password never prompt for password
-W, --password force password promptReport bugs to <pgsql-bugs@postgresql.org>.

 

例如创建一个名为 test 的管理员,使用

postgres$ createuser -ders --replication test
CREATE ROLE test SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN REPLICATION;

若需要指定密码,添加 -P 参数即可。

 

 


  请注意,本站的所有文章均要求阁下在转载时注明出处和原作者,阁下转载本站文章即表示阁下同意并遵守此规程,除非特别注明转载出处,否则文章即为其发布者所著。本站及文章作者保留文章的著作权并有权在阁下违反上述规程时予以追究。

本文链接地址: Postgresql创建管理员、命令行操作

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*