oracle数据库如何创建用户和角色,并给其赋权?
一、创建用户并赋予权限
1、创建用户
create user wangxiangyu identified by wangxiangyu;
2、赋权
grant dba to wangxiangyu;
grant create session to wangxiangyu; --会话权限(没有该权限无法登录)
3、查看已经赋予用户的系统权限
select * from user_sys_privs;
二、创建角色
角色,即权限的集合,可以把一个角色授予给用户
1、创建角色
create role myrole;
2、赋权
grant create session to myrole;--将创建session的权限授予给角色myrole
3、赋角色给用户
grant myrole to zhangsan;--授予zhangsan用户myrole的角色
4、删除角色
drop role myrole;
查看所有用户
select * from dba_users;
select * from all_users;
select * from user_users;
alter user user_name account lock; 锁住用户
alter user user_name account unlock; 解锁用户
查询当前用户所拥有的权限
select * from session_privs;
查看用户被赋予的系统权限(直接赋值给用户或角色的系统权限)
select * from dba_sys_privs where grantee = 'RESOURCE';
select * from user_sys_privs;
注:USER_SYS_PRIVS 视图列出已经授予用户的系统权限。
它的列包括Username、Privilege和 Admin_Option(设置为YES 或NO 的一个标志,用来指出是否用with admin option 授予权限),直接授予用户的所有系统权限都可以通过该视图显示,通过角色授予用户的系统权限不能在此视图中显示。
查看所有角色
select * from dba_roles;
查看用户所拥有的角色
select * from session_roles order by role;--返回当前用户被授予的全部角色, 包括嵌套授权的角色
select * from dba_role_privs;
select * from user_role_privs;
查看当前用户角色所包含的权限
select * from role_sys_privs where role = 'CONNECT';
查看用户对象权限
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
select * from v$pwfile_users;
查看用户与默认表空间的关系
select username, default_tablespace from dba_users where username='SCOTT';
查看当前用户的表
select * from user_tables;
可视化赋权:
1、使用ins用户建表
2、使用mobapp用户(管理员)将ins用户的某个表赋权给odso用户
users——>ins,选中要赋权的表赋权(右键,编辑,权限)
等同于:grant select, insert, update, delete on ins.tb_cablecheck_equ_odso to odso;
3、使用odso用户登录,增删改查该表测试
命令赋权:
赋予权限:grant ... to ...
撤销权限:revoke ... from ...
登陆
grant create session to zhangsan;
使用表空间
grant unlimited tablespace to zhangsan;
创建表
grant create table to zhangsan;
删除表
grant drop table to zhangsan;
grant drop on table_name to user_name;
插入表
grant insert table to zhangsan;
grant insert on table_name to user_name;
grant insert(id) on table_name to user_name;
更新表数据
grant update table to zhangsan;
grant update on table_name to user_name;
grant update(id) on table_name to user_name;
修改表结构
grant alter table on table_name to user_name;
查询表
grant select on table_name to user_name;
创建过程
grant create any procedure to username;
执行过程
grant execute any procedure to username;
grant execute on ins.p_trun_link_odso to odso_insert;
授予所有权限(all)给所有用户(public)
grant all to public;
权限传递
即用户A将权限授予B,B可以将操作的权限再授予C,
命令如下:
grant alter table on table_name to user_name with admin option;
grant update on table_name to user_name with grant option; --转移更新权限
grant alter table on table_name to user_name with grant option;
oracle数据库如何创建用户和角色,并给其赋权?的更多相关文章
- oracle数据库如何创建用户并授予角色
目标:1. 创建角色test1_role, 授予 CREATE PROCEDURE, CREATE SEQUENCE, CREATE SYNONYM, CREATE TABLE, CREATE T ...
- Oracle数据库之创建表空间与用户
Oracle数据库之创建表空间与用户 一.创建表空间 基本语法表述: CREATE TABLESPACE tablespace_name [DATAFILE datafile_spec1 [,data ...
- Oracle数据库如何创建DATABASE LINK?
Oracle数据库如何创建DATABASE LINK? 2011-08-09 14:54 taowei20061122 CSDN博客 http://blog.csdn.net/taowei20061 ...
- Spring-Security (学习记录三)--读取数据库中的用户和角色
目录 1.先将hibernate的环境整合进来 2.创建一个数据库security,执行security.sql 3.修改spring-security.xml,采用数据库的方式读取用户跟角色 4.u ...
- Oracle数据库之创建表结构
Oracle数据库之创建表结构 主键与外键 主键:关系型数据库中的一条记录中有若干个属性,若其中的某一个属性组(可以是一个属性,也可以是多个)能唯一标识一条记录,那么该属性组就是主键. 外键:关系型数 ...
- Oracle创建用户、角色、授权、建表
oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create table权限允许用户创建表,gr ...
- [转载]Oracle创建用户、角色、授权、建表
出处:https://www.cnblogs.com/roger112/p/7685307.html oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system p ...
- oracle创建用户和角色、管理授权以及表空间操作
show user 显示当前用户connect username/password@datebasename as sysdba 切换用户和数据库 和用户身份 Oracle登录身份有三种: norma ...
- Oracle创建用户、角色、授权、建表空间
oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create table权限允许用户创建表,gr ...
随机推荐
- 个人作业3——个人总结AlPha阶段
一.Alpha版本的总结 1.感受 Alpha版本已经结束了,回顾整个过程,我最大的遗憾就是项目完成得不是很理想,同时觉得自己做得不够多.不够好. 2.我做了哪些工作 数据库的连接,部分团队博客:部分 ...
- PAT 甲级 1106 Lowest Price in Supply Chain
https://pintia.cn/problem-sets/994805342720868352/problems/994805362341822464 A supply chain is a ne ...
- UML实践详细经典教程
面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML ...
- Ubuntu 14.04 将一个sh文件制作成类似于windows下的可以双击执行的快捷方式
# 创建文件 touch test.desktop # 在test.desktop中写入如下内容 [Desktop Entry] Version=1.0 Type=Application Termin ...
- Java之流的分类
Java I/O流分类:
- 【设计模式】—— 外观模式Facade
前言:[模式总览]——————————by xingoo 模式意图 外观模式主要是为了为一组接口提供一个一致的界面.从而使得复杂的子系统与用户端分离解耦. 有点类似家庭常用的一键开关,只要按一个键,台 ...
- Luogu4768 NOI2018归程(最短路径+kruskal重构树)
按海拔从大到小合并建出kruskal重构树,这样就能知道开车能到达哪些点,对这些点到1的最短路取min即可.最难的部分在于多组数据的初始化和数组大小的设置. #include<iostream& ...
- 洛谷P3227 切糕
最小割模板. 题意:你要在一个三维点阵的每个竖条中删去一个点,使得删去的点权和最小. 且相邻(四联通)的两竖条之间删的点的z坐标之差的绝对值不超过D. 解: 首先把这些都串起来,点边转化,就变成最小割 ...
- Python 堆与堆排序
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法.学习堆排序前,先讲解下什么是数据结构中的二叉堆. 二叉堆的定义 二叉堆是完全二叉树或者是近似完全二叉树. 二叉堆满足 ...
- Java基础-JAVA中常见的数据结构介绍
Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...