查看postgresql数据库用户系统权限、对象权限的方法

PostgreSQL简介

PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。

主要特点

PostgreSQL 的 主要优点如下:

1)维护者是PostgreSQL Global Development Group,首次发布于1989年6月。
2)操作系统支持WINDOWS、Linux、UNIX、MAC OS X、BSD。
3)从基本功能上来看,支持ACID、关联完整性、数据库事务、Unicode多国语言。
4)表和视图方面,PostgreSQL支持临时表,而物化视图,可以使用PL/pgSQL、PL/Perl、PL/Python或其他过程语言的存储过程和触发器模拟。
5)索引方面,全面支持R-/R+tree索引、哈希索引、反向索引、部分索引、Expression 索引、GiST、GIN(用来加速全文检索),从8.3版本开始支持位图索引。
6)其他对象上,支持数据域,支持存储过程、触发器、函数、外部调用、游标7)数据表分区方面,支持4种分区,即范围、哈希、混合、列表。
8)从事务的支持度上看,对事务的支持与MySQL相比,经历了更为彻底的测试。
9)My ISAM表处理方式方面,MySQL对于无事务的MyISAM表,采用表锁定,1个长时间运行的查询很可能会阻碍对表的更新,而PostgreSQL不存在这样的问题。
10)从存储过程上看,PostgreSQL支持存储过程。因为存储过程的存在也避免了在网络上大量原始的SQL语句的传输,这样的优势是显而易见的。
11)用户定义函数的扩展方面,PostgreSQL可以更方便地使用UDF(用户定义函数)进行扩展。

PostgreSQL 的 应用劣势如下:

1)最新版本和历史版本不分离存储,导致清理老旧版本时需要做更多的扫描,代价比较大但一般的数据库都有高峰期,如果合理安排VACUUM,这也不是很大的问题,而且在PostgreSQL9.0中VACUUM进一步被加强了。
2)在PostgreSQL中,由于索引完全没有版本信息,不能实现Coverage index scan,即查询只扫描索引,不能直接从索引中返回所需的属性,还需要访问表,而Oracle与Innodb则可以。

下面通过本文给大家介绍使用pg数据库可以通过如下方法查询用户的系统权限和对象权限。

1、查看某用户的系统权限

SELECT * FROM pg_roles WHERE rolname='postgres';

2、查看某用户的表权限

select * from information_schema.table_privileges where grantee='postgres';

3、查看某用户的usage权限

select * from information_schema.usage_privileges where grantee='postgres';

4、查看某用户在存储过程函数的执行权限

select * from information_schema.routine_privileges where grantee='postgres'; 

5、查看某用户在某表的列上的权限

select * from information_schema.column_privileges where grantee='postgres'; 

6、查看当前用户能够访问的数据类型

select * from information_schema.data_type_privileges ; 

7、查看用户自定义类型上授予的USAGE权限

select * from information_schema.udt_privileges where grantee='postgres';

到此这篇关于查看postgresql数据库用户系统权限、对象权限的方法的文章就介绍到这了,更多相关postgresql数据库用户系统权限、对象权限内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python操作PostgreSql数据库的方法(基本的增删改查)

    Python操作PostgreSql数据库(基本的增删改查) 操作数据库最快的方式当然是直接用使用SQL语言直接对数据库进行操作,但是偶尔我们也会碰到在代码中操作数据库的情况,我们可能用ORM类的库对数控库进行操作,但是当需要操作大量的数据时,ORM的数据显的太慢了.在python中,遇到这样的情况,我推荐使用psycopg2操作postgresql数据库 psycopg2 官方文档传送门: http://initd.org/psycopg/docs/index.html 简单的增删改查 连接

  • postgresql插入后返回id的操作

    如下所示: 补充:PostgreSQL中执行insert同时返回插入的那行数据 通过使用语句: INSERT INTO tab1 ... RETURNING *; 以上这篇postgresql插入后返回id的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Postgresql锁机制详解(表锁和行锁)

    表锁 LOCK [ TABLE ] [ ONLY ] name [ * ] [, ...] [ IN lockmode MODE ] [ NOWAIT ] lockmode包括以下几种: ACCESS SHARE | ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE| SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE | ACCESS EXCLUSIVE LOCK TABLE命令用于获取一个表锁,获取过程将阻塞一直

  • postgreSql分组统计数据的实现代码

    1. 背景 比如气象台的气温监控,每半小时上报一条数据,有很多个地方的气温监控,这样数据表里就会有很多地方的不同时间的气温数据 2. 需求: 每次查询只查最新的气温数据按照不同的温度区间来分组查出,比如:高温有多少地方,正常有多少地方,低温有多少地方 3. 构建数据 3.1 创建表结构: -- DROP TABLE public.t_temperature CREATE TABLE public.t_temperature ( id int4 NOT NULL GENERATED ALWAYS

  • postgreSQL数据库 实现向表中快速插入1000000条数据

    不用创建函数,直接向表中快速插入1000000条数据 create table tbl_test (id int, info text, c_time timestamp); insert into tbl_test select generate_series(1,100000),md5(random()::text),clock_timestamp(); select count(id) from tbl_test; --查看个数据条数 补充:postgreSQL 批量插入10000条数据

  • postgresql 实现数据的导入导出

    最近想把服务器上的测试数据库数据导到我本地的电脑上,本地电脑数据库是安装在windows系统下 之前没使用过pgsql,网上找了点资料,记入如下: 一,首先把服务器上的数据进行备份 pg_dump -U 用户名 数据库名 (-t 表名)> 数据存放路径 二,把.sql 文件下载到本地之后,首先切换到pgsql路径下的bin目录 然后执行这条命令: -d:数据库名 -h:地址 -p:端口 -u:用户名 -f:sql文件路径 之后输入口令: 这样就可以了! 补充:Sqoop从PostgreSQL导入

  • 基于postgresql行级锁for update测试

    创建表: CREATE TABLE db_user ( id character varying(50) NOT NULL, age integer, name character varying(100), roleid character varying, CONSTRAINT db_user_pkey PRIMARY KEY (id) ) 随便插入几条数据即可. 一.不加锁演示 1.打开一个postgreSQL的SQL Shell或pgAdmin的SQL编辑器窗口,执行: begin; s

  • PostgreSQL function返回多行的操作

    1. 建表 postgres=# create table tb1(id integer,name character varying); CREATE TABLE postgres=# postgres=# insert into tb1 select generate_series(1,5),'aa'; INSERT 0 5 2. 返回单字段的多行(returns setof datatype) 不指定out参数,使用return next xx: create or replace fun

  • 查看postgresql数据库用户系统权限、对象权限的方法

    PostgreSQL简介 PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统.POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中.PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询.外键.触发器.视图.事务完整性.多版本并发控制等.同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型.函数.操作符

  • 关于查看MSSQL 数据库 用户每个表 占用的空间大小

    最近做项目需要查看数据用户表的大小,包括记录条数和占用的磁盘空间数目.在网上找了很久其中查看MSSQL数据库每个表占用的空间大小 相对还可以.不过它的2.3中方法返回的数据比较多,有些是我们不关心的数据,我在AdventureWorks2012数据上做的测试.其中第二种方法代码如下: 复制代码 代码如下: View Code if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespacein

  • 查看oracle数据库的编码及修改编码格式的方法

    首先查看oracle数据库的编码 SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; PARAMETER -------------------- VALUE -------------------- NLS_CHARACTERSET AL32UTF8 这其来源于props$,这是表示数据库的字符集. oracle客户端编码 SQL> select * from nls_instance

  • PostgreSQL数据库事务出现未知状态的处理方法

    背景 数据库的事务是原子操作,要么成功,要么失败.但是实际上在客户端的视角,可能有第三种状态:unknown状态. 当客户端提交事务结束(rollback , commit , prepare xact , rollback pxact , commit pxact)的请求后,数据库收到请求,数据库可能执行失败,也可能执行成功,不管怎样都要写对于的WAL日志,还有CLOG,然后数据库要将执行结果返回给客户端ACK. 这里存在几种可能,导致客户端不知道执行到底怎么样了? 收到客户端请求后,数据库没

  • 15个postgresql数据库实用命令分享

    最初是想找postgresql数据库占用空间命令发现的这篇blog,发现其中提供的几 条命令很有用(但也有几条感觉是充数的=.=),于是就把它翻译过来了.另外这篇文章是09年的,所以里面的内容可能有点过时,我收集了原文中有用的评论放在了最后面. 现在有不少开源软件都在使用postgreSQL作为它们的数据库系统.但公司可能不会招一些全职的postgreSQL DBA来维护它(piglei: 在国内基本也找不到).而会让一些比如说Oracle DBA.Linux系统管理员或者程序员去 维护.在这篇

  • Oracle日常维护中管理用户以及重做日志文件的方法

    一.管理用户和安全性 在db中各种对象以 用户(方案) 的方式组织管理 select distinct object_type from dba_objects; 模式对象,schema ----> user.objects(某个用户下的某个对象) 在创建对象和访问对象前,首先创建对象的拥有者--用户         所有的对象在用户下 用户有相关的属性,有些必须明确设置,有些可以使用默认值         常见属性:用户名.口令.默认表空间(可默认).临时表空间(可默认).账户状态(可默认).

  • Postgresql 数据库权限功能的使用总结

    Postgresql数据库支持灵活的权限管理,可以控制一个角色(组.用户)对某张表的读.写.更新.删除等操作权限.执行某个函数的权限以及操作(使用.更新等)视图.序列的权限. PG的权限管理功能比较强大,可以细化到对一张表的各个字段,比如禁止用户访问一张表里的密码字段等,在稍后的内容中给出详细的解释. 虽然在PG数据库中把用户.角色统一叫做角色,甚至创建语句都为create role XXX,但用户和角色之间仍有一定的区别.在这里我们统一把拥有登录权限的叫做用户,没有登录权限的叫做角色,用此方式

  • Django用户认证系统 组与权限解析

    Django的权限系统很简单,它可以赋予users或groups中的users以权限. Django admin后台就使用了该权限系统,不过也可以用到你自己的代码中. User对象具有两个ManyToManyField字段,groups和user_permissions groups = models.ManyToManyField(Group, verbose_name=_('groups'), blank=True, help_text=_('The groups this user bel

  • MongoDB数据库用户角色和权限管理详解

    查看数据库 使用终端命令行输入 mongo 登陆 mongodb 之后切换到 admin 库,并认证后可查看所有数据库,操作如下所示: [root@renwole.com ~]# mongo MongoDB shell version v4.4.0 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id&

  • Postgresql 赋予用户权限和撤销权限的实例

    1.对数据库授权 postgresql 授权某个数据库的权限给wang 账号 使该账号 只能操作指定DB 不能操作其他DB alter user wang set default_transaction_read_only=on; grant all on database test to wang; grant select on all database test to wang; grant select on all tables in schema public to wang; //

随机推荐