Oracle数据库创建用户(分配、撤销、角色)

此处介绍下Oracle的权限等级

  • sys;//系统管理员,拥有着最高权限
  • systen;//本地管理员,拥有次高权限
  • scott;//普通用户

角色(即权限的集合,可以把一个角色授予给用户)

CONNECT角色: --是授予最终用户的典型权利,最基本的权力,能够连接到ORACLE数据库中,并在对其他用户的表有访问权限时,做SELECT、UPDATE、INSERTT等操作。

  •         ALTER SESSION --修改会话
  •         CREATE CLUSTER --建立聚簇
  •         CREATE DATABASE LINK --建立数据库链接
  •         CREATE SEQUENCE --建立序列
  •         CREATE SESSION --建立会话
  •         CREATE SYNONYM --建立同义词
  •         CREATE VIEW --建立视图

 RESOURCE角色: --是授予开发人员的,能在自己的方案中创建表、序列、视图等。

  •         CREATE CLUSTER --建立聚簇
  •         CREATE PROCEDURE --建立过程
  •         CREATE SEQUENCE --建立序列
  •         CREATE TABLE --建表
  •         CREATE TRIGGER --建立触发器
  •         CREATE TYPE --建立类型

DBA角色,是授予系统管理员的,拥有该角色的用户就能成为系统管理员了,它拥有所有的系统权限

首先win+R 输入cmd打开命令行 输入

sqlplus /nolog

然后通过系统管理员的身份登录

 conn / as sysdba;

如果连接错误的话,记得启用oracle相关服务

Oracle数据库创建用户(分配、撤销、角色)_第1张图片

 

登录之后就可以创建用户了

create user test identified by 123456;

12c的版本肯定会报错:

ORA-65096: 公用用户名或角色名无效

创建用户的时候用户名以c##或者C##开头即可。

错误写法: create user test    identified by 123456;
正确写法: create user c##test identified by 123456;

创建成功以后就需要给新建用户权限

grant create session to c##test;//授予c##test用户创建session的权限,用来登录
grant unlimited session to c##test;//授予c##test用户使用表空间的权限
grant create table to c##test;//授予创建表的权限
grant drop table to c##test;//授予删除表的权限
grant insert table to c##test;//插入表的权限
grant update table to c##test;//修改表的权限

授权标准角色(即系统默认权限的集合CONNECT、RESOURCE、DBA)

 grant connect, resource to c##test;

 

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

如果想让c##test拥有访问其他表的权限,则需要以下命令

grant select on tablename to c##test;//授予c##test用户查看指定表的权限 
grant drop on tablename to c##test;//授予删除表的权限 
grant insert on tablename to c##test;//授予插入的权限 
grant update on tablename to c##test;//授予修改表的权限 
grant insert(id) on tablename to c##test; 
grant update(id) on tablename to c##test;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和update 
grant alert all table to c##test;//授予c##test用户alert任意表的权限 

撤销用户权限

revoke create session from c##test;//移除c##test用户创建session的权限
revoke unlimited session from c##test;//移除c##test用户使用表空间的权限
revoke create table from c##test;//移除创建表的权限
revoke drop table from c##test;//移除删除表的权限
revoke insert table from c##test;//移除插入表的权限
revoke update table from c##test;//移除修改表的权限
revoke all from public;//移除所有用户(public)所有权限(all) 
等等···和授予权限语法基本都是一样的,除了关键字

查看权限

select * from user_sys_privs;//查看当前用户所有权限 
select * from user_tab_privs;//查看所用用户对表的权限 
select * from user_sys_privs;//查看当前用户所有权限 
select * from user_tab_privs;//查看所用用户对表的权限 

角色(即权限的集合,可以把一个角色授予给用户 )

create role myrole;//创建角色 
grant create session to myrole;//将创建session的权限授予myrole 
grant myrole to c##test;//授予c##test用户myrole的角色 
drop role myrole;删除角色 
/*但是有些权限是不能授予给角色的,比如unlimited tablespace和any关键字*/ 

你可能感兴趣的:(Oracle)