sql查看用户拥有的权限_oracle 用户权限

sql查看用户拥有的权限_oracle 用户权限问题 经常在PG群里看到有人在问“为什么我对表赋予了权限;但是还是不能访问表” 解析 若你看懂德哥这篇文章PostgreSQL逻辑结构和权限体系介绍;上面对你就不是困扰你的问题 解决这个问题很简单;在

浅谈PostgreSQL用户权限

问题

  经常在PG群里看到有人在问“为什么我对表赋予了权限;但是还是不能访问表”

解析

  若你看懂德哥这篇文章PostgreSQL逻辑结构和权限体系介绍上面对你就不是困扰你的问题

  解决这个问题很简单;在解决之前;我们要先了解PostgreSQL的逻辑结构、以及与用户之间的关系盗用德哥的图;来诠释下逻辑结构;PostgreSQL逻辑结构有4层:实例->数据库->schema->数据库对象

sql查看用户拥有的权限_oracle 用户权限

 

  可以看出用户不在PostgreSQL里面;是独立之外的object;这个跟Oracle逻辑结构不一致。它不属于某个数据库、或者某个schema。

  若用户不是数据库属主的用户;要访问table1;该怎么办?有三步

  • 首先你把数据库select的权限赋予用户
  • 再则你需要把table1所在的schema的select权限赋予用户
  • 最后你需要把table的select的权限赋予

讨论

  现实验环境

  • 用户:lottu1、lottu2。
  • 数据库:db1
  • schema:lottu1
  • 表:tbl_lottu_01
# 创建用户lottu1
postgres=# create user lottu1;
CREATE ROLE
# 创建用户lottu2
postgres=# create user lottu2;
CREATE ROLE
# 创建数据库db1;属于lottu1
postgres=# create database db1 owner  lottu1;
CREATE DATABASE
# 创建schema、table、并插入记录
postgres=# c db1 lottu1;
You are now connected to database "db1" as user "lottu1".
db1=> create schema lottu1;
CREATE SCHEMA
db1=> create table tbl_lottu_01(id int, info text, reg_time timestamp);
CREATE TABLE
db1=> insert into tbl_lottu_01 select 1,"lottu",now();
INSERT 0 1

代码100分

  新建的数据库对所有的用户都有连接权限;不管是不是超级用户、属主用户

代码100分db1=> c db1 lottu2
You are now connected to database "db1" as user "lottu2".

  针对这种情况;这样是不是很不安全;非主用户为啥可以连数据库;虽然它不可以做任何操作。但是觉得还是没有完全隔离。要实现隔离;我们可以回收数据库权限;只有超级用户、属主用户可以连。

db1=> c db1 postgres
You are now connected to database "db1" as user "postgres".
db1=# revoke CONNECT ON DATABASE db1 from public;
REVOKE
db1=# c db1 postgres
You are now connected to database "db1" as user "postgres".
db1=# c db1 lottu1;
You are now connected to database "db1" as user "lottu1".
db1=> c db1 lottu2;
FATAL:  permission denied for database "db1"
DETAIL:  User does not have CONNECT privilege.
Previous connection kept

  现在实现用户lottu2不能连接数据库db1。现在需求tbl_lottu_01给db2查询。而表tbl_lottu_01属于数据库db1下面schema-lottu1的。

代码100分db1=> grant CONNECT ON DATABASE db1 to lottu2;
GRANT
db1=> grant USAGE ON SCHEMA lottu1 to lottu2;
GRANT
db1=> grant select on TABLE tbl_lottu_01 to lottu2;
GRANT
db1=> c db1 lottu2;
You are now connected to database "db1" as user "lottu2".
db1=> select * from lottu1.tbl_lottu_01;
 id | info  |          reg_time          
----+-------+----------------------------
  1 | lottu | 2020-05-19 10:50:15.206569
(1 row)

  经过一层层的赋权;用户lottu2可以select表tbl_lottu_01。若需求将schema-lottu1下所有的表都赋于给lottu2。将上面的修改下即可

grant select on ALL TABLES IN SCHEMA lottu1 to lottu2;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8374.html

(0)
上一篇 2023-03-01
下一篇 2023-03-01

相关推荐

  • 如何使用 SQL AVG、COUNT、MAX、MIN 和 SUM 汇总数据[亲测有效]

    如何使用 SQL AVG、COUNT、MAX、MIN 和 SUM 汇总数据[亲测有效]本文介绍什么是 SQL 的聚集函数,如何利用它们汇总表的数据。这些函数很高效,它们返回结果一般比你在自己的客户端应用程序中计算要快得多。 一、聚集函数 我们经常需要汇总数据而不用把它们实际检索出来,为

    2023-05-16
    144
  • 数据保护官(DPO)的能力维度与自我修养[亲测有效]

    数据保护官(DPO)的能力维度与自我修养[亲测有效]自从以GDPR为代表的全球个人数据保护法陆续出台以来,来自业务上新的合规要求,给大量企业原有的业务逻辑和治理方式带来了很大的挑战。然而除了被动应对,我们或许更应该将其视作一种大的趋势来主动拥抱,因为…

    2023-02-04
    137
  • 深圳哪里有开住宿费发票「建议收藏」

    深圳哪里有开住宿费发票「建议收藏」电薇13530507261 保-真,可-先-幵-验,陈经理。链接与装载是一个比较晦涩的话题,大家往往容易陷入复杂的细节中而难以看清问题的本来面目。从本质上讲各个系统的编译、链接、装载过程都是大同小异…

    2023-02-16
    146
  • centos7 Yum在线安装方式 mysql8 数据库 并配置远程链接

    centos7 Yum在线安装方式 mysql8 数据库 并配置远程链接安装MySQL8.0(参考官方文档) 1 添加yum仓库 1.1 下载最新的.rpm包 sudo wget https://dev.mysql.com/get/mysql80-community-r…

    2023-02-03
    156
  • Python Overhead Application是什么?

    Python Overhead Application是什么?Python Overhead Application是指Python应用程序在运行过程中,除了执行核心业务逻辑所需的资源外,还需要额外消耗的资源,这些资源包括内存、CPU、网络、I/O等。理解Python Overhead Application对开发者来说非常重要,因为他们需要在代码编写过程中,根据应用程序的性质选择合适的优化方案,以确保程序有一个良好的性能。

    2024-03-24
    70
  • Python使用with open实现文件操作

    Python使用with open实现文件操作Python中使用文件操作十分方便,通过打开文件、读取文件、写入文件及关闭文件等一系列操作,可以轻松地在Python中实现文件操作。with open语句是Python文件操作中的一种常用方法,它可以自动帮助我们关闭文件,避免频繁地使用close()方法而导致程序出错。

    2024-02-02
    97
  • [20200312]不要设置net.ipv4.tcp_tw_recycle=1.txt

    [20200312]不要设置net.ipv4.tcp_tw_recycle=1.txt[20200312]不要设置net.ipv4.tcp_tw_recycle=1.txt–//昨天认真看了2篇blog:https://vincent.bernat.ch/en/blog/2014-t

    2023-02-05
    126
  • 数据库-MySQL

    数据库-MySQL数据库-MySQL 一日不思量,也攒眉千度。 简介:数据库-MySQL。 一、索引 B+ Tree 原理 树简介参考链接:https://www.cnblogs.com/taojietaoge/p/1

    2023-04-19
    165

发表回复

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