文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

postgresql数据库基础

2024-04-02 19:55

关注

创建只读账号

1.1以初始化账号登入

[root@localhost ~]# psql -U postgres

1.2创建用户

postgres=# create role develop with login password '123456';  

CREATE ROLE

postgres=# select usename from pg_user;

 usename  

----------

 postgres

 test

 develop

(3 rows)


1.3切换数据库

\c current_product

1.4赋予只读权限

current_product=# grant select on all tables in schema public to develop;

GRANT

1.5切换到develop用户

current_product=# \c - develop

You are now connected to database "current_product" as user "develop".

1.6检测是否拥有只读权限

current_product=> select * from test;    

 id 

----

(0 rows)


2创建读写账号

2.1初始账号登录

psql -U postgres   

2.2查看用户

postgres=# select usename from pg_user;

 usename  

----------

 postgres

 test

 test1

 u2

(4 rows)


2.3创建读写用户

postgres=# create role test2 with login password '123456';

CREATE ROLE

postgres=# grant ALL  on all tables in schema public to test2;  #这种授权方式是不对的,test2用户对current_product数据库没有权限

GRANT


2.4检测用户是否有读写权限

postgres=# \c - test2

You are now connected to database "postgres" as user "test2".

切换数据库

postgres=> \c current_product  

You are now connected to database "current_product" as user "test2".

current_product=> \dt

        List of relations

 Schema | Name | Type  |  Owner   

--------+------+-------+----------

 public | aaa  | table | postgres

 public | test | table | postgres

(2 rows)


current_product=> select * from aaa;         #显示没有权限

ERROR:  permission denied for relation aaa


2.5 正确的授权方式是 :切换到目标数据库,执行授权语句

postgres=# \c current_product     #切换到目标数据库

You are now connected to database "current_product" as user "postgres".

current_product=# grant ALL  on all tables in schema public to test2;   #执行授权语句

GRANT


2.6 切换到读写用户,检测是否有权限

current_product=# \c - test2       ###切换至读写用户

You are now connected to database "current_product" as user "test2".

current_product=> \dt     ###查看几个表

        List of relations

 Schema | Name | Type  |  Owner   

--------+------+-------+----------

 public | aaa  | table | postgres

 public | test | table | postgres

(2 rows)


current_product=> select * from aaa;    #查权限正常

 id 

----

(0 rows)


current_product=> insert into aaa values(1);  #增权限正常

INSERT 0 1

current_product=> select * from aaa;        

 id 

----

  1

(1 row)


current_product=> delete from aaa;   #删除权限正常

DELETE 1


2.7 切换至超级用户

current_product=> \c - postgres

You are now connected to database "current_product" as user "postgres".

current_product=# create table bbb(id int);     ###新增一张表

CREATE TABLE


2.8 切换至读写用户

current_product=# \c - test2

You are now connected to database "current_product" as user "test2".

current_product=> \dt

        List of relations

 Schema | Name | Type  |  Owner   

--------+------+-------+----------

 public | aaa  | table | postgres

 public | bbb  | table | postgres

 public | test | table | postgres

(3 rows)


current_product=> select * from bbb;     #显示无权限

ERROR:  permission denied for relation bbb


2.9 解决办法:

每次新增表都执行一次授权语句,否则无权限(其它方法正在探索中……)

current_product=> \c - postgres

You are now connected to database "current_product" as user "postgres".

current_product=# grant ALL  on all tables in schema public to test2;

GRANT

切换至读写用户 , 检测权限

current_product=# \c - test2

You are now connected to database "current_product" as user "test2".

current_product=> select * from bbb;

 id 

----

(0 rows) 

current_product=> insert into bbb  values(2222);

INSERT 0 1

current_product=> select * from bbb;

  id  

------

 2222

(1 row)


current_product=> delete from bbb;

DELETE 1

current_product=> select * from bbb;

 id 

----

(0 rows)


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯