博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle——16用户、角色和权限
阅读量:6571 次
发布时间:2019-06-24

本文共 2456 字,大约阅读时间需要 8 分钟。

hot3.png

一、用户

1、利用SQL创建用户的语法格式如下:

 

create user user_name --用户名*/		[identified by password | externally | globally as 'external_name'] --以何种方式验证用户,验证方式有3种:口令、外部和全局,		--口令表示利用创建用户时提供的password进行验证,外部表示利用第三方程序来验证,如操作系统的登录密码,全局则指当有多个数据时,		--建立一个全局的用户,其他数据库都以这个用户来验证,只有使用口令的时候才需要关键字by*/		[default tablespace tablespace_name] --指定用户的默认表空间*/		[temporary tablespace tablespace_name] --指定用户的临时表空间*/		[quota integer K | integer M | unlimited on tablespace_name] --在指定表空间能分配的最大空间*/		[profile profile_name] --指定概要文件*/		[default role roleName,..n | all[except roleName,...n] | none] --指定用户拥有的角色,default是将一个或多个默认的		--角色分给用户,all[except role]是把所有的角色或除某些角色以外的角色分给用户,none表示不指定角色*/		[password expire] --表示使password失效,这将强制用户在第一次登录数据库时更换密码*/		[account lock | unlock] --账户是否锁定*/	示例代码:		create user hello identified by world password expire;
 

2、利用SQL修改用户的语法格式如下:

 

alter user user_name		identified by password | externally | globally as 'external_name'		[default tablespace tablespace_name]		[temporary tablespace tablespace_name]		[quota integer K | integer M | unlimited on tablespace_name]		[profile profile_name]		[default role roleName | all[except roleName] | none]		[password expire]		[account lock | unlock]	示例代码:		alter user hello identified by helloworld;
 

3、利用SQL命令删除用户的语法格式如下:

 

drop user user_name [cascade]; --使用cascade会把用户拥有的对象一起删除*/	示例代码:		drop user hello cascade;
 

二、角色

1、利用SQL语句创建角色的语法格式如下:

 

create role role_name		[not identified]		[identified by password | externally | globally]
 

示例代码:

 

create role hello;
 

2、利用SQL语句修改角色的语法格式如下:

 

alter role role_name		[not identified]		[identified by password | externally | globally]
 

3、利用SQL语句删除角色的语法格式如下:

 

drop role role_name
 

三、权限

权限既可以授予单独的用户,也可以授予给角色。

1、使用grant进行授权

语法格式如下:

 

grant system_privilege | role_name to user_name | role_name [with admin option]; --把系统权限或某个角色授予某一用户或角色*/
 

说明:with admin option表示被授予权限的用户有权限把该权限授予其他用户或角色。

示例代码:

 

grant connect to hello;
 

对某些对象也可以单独授予权限,如表、视图等,语法格式如下:

 

grant system_privilege on object to user_name | role_name; --对某个对象授予权限*/
 

示例代码:

 

grant select on table_name to hello; --授予用户hello对表table_name的select权限*/
 

2、使用revoke进行权限的移除

语法格式如下:

 

revoke system_privilege | role_name from user_name | role_name; --把系统权限或某个角色从某一用户或角色的权限列表中移除*/
 

示例代码:

 

revoke connect from hello;
 

对某些对象单独授予的权限,也可以使用revoke进行移除,语法格式如下:

 

revoke system_privilege on object from user_name | role_name; --把某一对象的系统权限授予某一用户或角色*/
 

示例代码:

 

revoke select on table_name from hello; --移除用户hello对表table_name的select权限*/

转载于:https://my.oschina.net/NEMOCoder/blog/608975

你可能感兴趣的文章
如何在Ubuntu 13.04, 13.10上安装Sublime Text 3
查看>>
C++语言基础 例程 派生类的声明与构成
查看>>
时间都去哪了?BPC电波授时信号的“零成本”伪造
查看>>
大数据workshop:《云数据·大计算:海量日志数据分析与应用》之《社交数据分析:好友推荐》篇...
查看>>
Python的类方法
查看>>
吐槽一下J2Cache
查看>>
PHP的语言构造器
查看>>
mysql5.6.25及以上下载衔接
查看>>
Node+fs+定时器(node-schedule)+MySql
查看>>
Eclipse环境安装Python插件PyDev
查看>>
【IOS-COCOS2D游戏开发之十九】游戏数据存储的四种常用方式NSKEYEDARCHIVER/NSUSERDEFAULTS/WRITE写入/SQLITE3...
查看>>
git 常用命令
查看>>
logging 日志表的设计
查看>>
sed 常见用法
查看>>
很多人很想知道怎么扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi,今天做个demo(续集)...
查看>>
mysql 常用操作(整理)
查看>>
Java 网络教程: ServerSocket
查看>>
解决NSTextContainer分页时文本截断问题
查看>>
Android被逼学习小例子1
查看>>
x265探索与研究(一):x265下载安装与配置
查看>>