必威体育Betway必威体育官网
当前位置:首页 > IT技术

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

时间:2019-10-17 03:45:38来源:IT技术作者:seo实验室小编阅读:85次「手机版」
 

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相关服务

 

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

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函数

概述 ORACLE函数系列:Oracle常见函数大全Oracle-分析函数之连续求和sum(…) over(…)Oracle-分析函数之排序值rank()和dense_rank(

spring Oracle11g 的 dialect 方言选择

1、使用ojdbc-6.jar 的jar包 2、<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> 这样子就可以了

Oracle中to_date()方法

今天写项目的时候遇见一个坑,花费了半个小时才搞定,特此记录一下。 oracle数据可中可以存储Date数据类型,有一个相关的方法to_date()

Oracle TDE透明加密研究以及测试

Oracle TDE(Oracle Transparent Data Encryption)TDE透明数据加密允许用户对各个表列或整个表空间进行加密。当用户向加密的列中

数据库范式问题

作者:知乎用户链接:https://www.zhihu.com/question/24696366/answer/29189700来源:知乎著作权归作者所有。商业转载请联系作者获得

分享到:

栏目导航

推荐阅读

热门阅读