PostgreSQL 13 新建数据库、用户及配置

2021/10/13 19:14:29

本文主要是介绍PostgreSQL 13 新建数据库、用户及配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

环境 Debian 11

PostgreSQL 安装后会创建一个postgres的系统账户,切换账户可更方便的操作,不切换用户使用psql登录需要手动指定用户和数据库等信息:

psql -h 127.0.0.1 -p 5432 -U postgres -d postgres

当然,如果是刚安装还是要切换到系统postgres用户下进行操作,因为你可能不知道数据库中postgres用户的密码

PostgreSQL封装了一个shell命令 可以创建一个数据库:

1 su - postgres
2 createdb db_name

创建成功后什么都不会显示, 现在可以用psql登录进去看看效果:

1 # postgres用户下直接输入psql 可以进入psql的命令界面
2 psql
3 postgres=#

当然,之前创建数据库的步骤也可以在psql的界面里运行,之前已经创建好了的话再执行会提示你该数据库已存在:

CREATE DATABASE db_name WITH OWNER postgres ENCODING UTF8 TEMPLATE template1;

看看刚创建的数据库  \c可以切换到刚创建数据库:

1 postgres=# \l
2 \c db_name 

新建一个角色,PostgreSQL手册说“角色”和“用户”没有本质上的区别,有LOGIN权限的角色就是用户:

1 CREATE ROLE username
2 # 输入\du可以看到刚创建的用户和postgres用户
3 \du 

更改新角色权限,增加建库和建角色的权限:

ALTER ROLE username WITH CREATEDB CREATEROLE;

可以用\du查看下,应该增加了Create role 和 Create DB两项

然后再创建一个用户:

CREATE USER user2name WITH ENCRYPTED PASSWORD '123abc';

把user2name变成username的成员,这样user2name应该就会有username的权限了

GRANT username TO user2name;

再输入\du查看,会发现 Member of 那一栏 hoist 的属性变成了 username

其实自己用创建一个用户就行了

更改刚创建的数据库所有权:

ALTER DATABASE db_name OWNER TO user2name;

======================================================================

继续,创建个schema (叫做模式)

CREATE SCHEMA schema_name;

更改模式所有者为user2name,并赋予user2name使用模式的权限

1 ALTER SCHEMA schema_name OWNER TO user2name;
2 GRANT USAGE ON SCHEMA schema_name TO user2name;

赋予user2name用户各种权限:

1 #赋予访问数据库权限
2 GRANT CONNECT ON DATABASE db_name TO user2name;
3 #赋予各种操作权限
4 GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA schema_name TO user2name;
5 #赋予序列权限
6 GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA schema_name TO user2name;
7 #默认权限
8 ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT SELECT,INSERT,UPDATE,DELETE ON TABLES TO user2name;
9 ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT ALL PRIVILEGES ON SEQUENCES TO user2name;

 



这篇关于PostgreSQL 13 新建数据库、用户及配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程