概述
上一篇????:Oracle-----同义词&索引
总目录????震惊!史上最菜的Oracle 11g教程(大佬勿进)
文章目录
- 1、目标
- 2、用户管理
- 2.1 范例1:将创建session的权限赋予dog
- 2.2 范例2:将两个角色授予dog用户
- 2.3 范例3:修改用户的密码
- 2.4 范例4:让用户的密码过期
- 2.5 范例5:锁定用户
- 2.6 范例6:用户解锁
- 2.7 范例7:下面将scott.emp表的select、insert权限授予dog用户
- 2.8 范例8:回收dog对scott权限操作
- 2.9 范例9:回收其他dog授予的权限
????大家好!我是近视的脚踏实地,这篇文章主要是来学习Oracle的用户管理的一些权限划分
唯有行动 才能解除你所有的不安
1、目标
1、用户的维护以及权限的划分。
2、用户管理
如果以后在学习中使用Oracle,使用的就是scott/scott。所有的关注点在于程序的逻辑结构上,数据库对于开发人员而言,主要的目的就是进行数据的交互(保存、更新)。
之所以要讲解用户管理部分,主要是为了解释DCL的SQL分类。DCL属于数据的控制语言,主要有两个语法:grant(授予)、revoke(回收) 。这样的两个命令必须以用户对象为基础使用。
下面以狗狗的从业经历为例,说一下用户从无到有在,再分配权限,在到堕落以及删除的过程。
如果要想进行用户的创建,那么必须有管理员的权限,本次直接使用sys用户。
1、使用sys登录
conn sys/sys as sysdba;
2、创建一个新用户,名字为dog,密码为:wangwang
create user dog identified by wangwang;
那么现在用户以及创建完成了,所以能不能使用此用户登录呢?那么此时出现如下错误????:
每一个新的用户本身不具备任何的权限,而在Oracle数据里面,如果用户要想登录,则必须具有创建session的权限,如果要分配权限则可以使用如下的语法完成????:
grant 权限1,权限2,… to 用户名;
2.1 范例1:将创建session的权限赋予dog
范例1 将创建session的权限赋予dog
grant create session to dog;
此时再来登录dog用户????:
3、既然已经使用了dog用户登录成功,那么下面创建序列和表?
create sequence myseq;
create table mytab(
name varchar2(20)
);
这个时候出现了以下的错误信息????:
实际上进来后依然需要权限,一步一个脚印,需要创建序列的权限、需要创建表的权限,还有可能需要一堆其他的权限。一个一个赋予权限,这样做太麻烦了,所以在Oracle里面提供有一种角色的概念。所谓的角色指的是包含有若干个权限,那么在Oracle里面主要使用两个角色:connect(了解)、resource(表以及表空间操作)。
2.2 范例2:将两个角色授予dog用户
范例2 将两个角色授予dog用户
grant connect,resource to dog;
如果现在没有重新登录dog用户,直接去登录是不行的????:
所以要知道的是:用户得到了新的权限之后必须重新登录后才可以取得新的权限。
create sequence myseq;
create table mytab(
name varchar2(20)
);
一旦有了用户的问题,那么就会出现用户管理的问题。
2.3 范例3:修改用户的密码
范例3: 修改用户的密码,由于用户并不多,所以这种用户的维护就可以由sys进行了。
alter user dog identified by miaomiao;
管理员修改完密码之后,肯定需要用户自己设置一个新的密码,这才合理。
2.4 范例4:让用户的密码过期
范例4 让用户的密码过期
alter user dog password expire;
然后就可以设置新的密码, 然后登陆????:
到此dog用户的辉煌就结束了,下面开启下篇:堕落篇。
假设有人检举dog盗取信息,那么管理一听,第一反应是什么,没查到之前, 也不能直接开除,那就先锁着
2.5 范例5:锁定用户
范例5: 锁定用户
alter user dog account lock;
2.6 范例6:用户解锁
范例6: 锁定解锁
alter user dog account unlock;
除了以上给出的一些系统权限之外,还可以使用一些对象权限。比如之前讲过要访问其他用户的表,要在前面加模式名称.表名称。下面在dog用户下访问scott用户的emp表
select * from scott.emp;
那么发现访问不了,那么可以针对于一个对象下的数据表进行访问的定义:有四种权限:insert、update、delete、select
2.7 范例7:下面将scott.emp表的select、insert权限授予dog用户
范例7: 下面将scott.emp表的select、insert权限授予dog用户(在sys用户下赋予)
grant select,insert on scott.emp to dog;
可以发现没有重新dog用户可以直接查询出来了,这也是新版本之后的加的特性,这种做法其实并不好,他这种做法就相当于在执行每次操作前,先去判断权限,而不是在登录的时候直接把全部的权限取出来,这两者性能有本质的差别,如果下面接着执行删除则会被告知权限不足
delete from scott.emp;
那么后来发现dog用户不需要这么多的权限,所以开始进行权限回收。
2.8 范例8:回收dog对scott权限操作
范例8: 回收dog对scott权限操作
revoke select,insert on scott.emp from dog;
2.9 范例9:回收其他dog授予的权限
范例8: 回收其他dog授予的权限
revoke connect,resource,create session from dog;
那么此时dog用户连登陆的权限都没有了,既然用户已经没有存在的意义的,那么可以进行删除操作。那么一般会直接想到drop user dog; 但是一执行????:
所以加上指定的参数,就可以删除他了,让他卷铺盖走人
drop user dog cascade;
删的过程中会明显感觉到有点久,要等几秒,因为他要清空很多资源。
下一篇????Oracle-----数据导出与导入&数据库冷备份
本篇博客到这就完啦,非常感谢您的阅读????,如果对您有帮助,可以帮忙点个赞或者来波关注鼓励一下喔???? ,嘿嘿????
最后
以上就是简单老师为你收集整理的Oracle-----用户管理1、目标2、用户管理的全部内容,希望文章能够帮你解决Oracle-----用户管理1、目标2、用户管理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复