我是靠谱客的博主 简单老师,最近开发中收集的这篇文章主要介绍Oracle-----用户管理1、目标2、用户管理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

上一篇????: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、用户管理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部