标签:13 PostgreSQL postgres 数据库 用户 user2name schema name
环境 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;
标签:13,PostgreSQL,postgres,数据库,用户,user2name,schema,name 来源: https://www.cnblogs.com/qulee/p/15403269.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。