oracle用户权限管理

oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权

1.查看当前数据库所有用户:

select * from all_users;

2.查看表所支持的权限:

select * from user_tab_privs;

3.把表的权限赋予用户:

  grant select,insert,update on table_name to username1,username2;

  删除权限:

  revoke select,insert,update on table_name from username1,username2;

  多用户运维下,管理用户比较麻烦,一般是权限赋予某个角色,再把该角色权限全部赋予其他用户,这样方便新增表时,只要把新表的权限给最顶端的角色即可,不需要分别给所有用户授权。

  创建角色(dba):

  create role R_SELNN_PRIENT;

  把角色权限授予其他用户(dba):

  grant R_SELNN_PRIENT to userNameXX;

  回收用户的角色权限(dba):

  revoke R_SELNN_PRIENT from userNameXX;

  比如:分别建立_R_SELNN_PRIENT,R_UPDNN_PRIENT,select和操作角色,其他用户继承这两个角色权限_

  建表后:

grant select on 表名 to R_SELNN_PRIENT;
  grant insert on 表名 to R_UPDNN_PRIENT;
  grant update on 表名 to R_UPDNN_PRIENT;
  grant delete on 表名 to R_UPDNN_PRIENT;

  建立sequence后:
  grant select on SEQ名 to R_UPDNN_PRIENT;

4.查看没有权限的表:

SELECT * FROM user_tables where table_name not in (select table_name from user_tab_privs)

推荐浏览:

https://www.cnblogs.com/buxingzhelyd/p/7865194.html

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

sql注入

反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o