oracle 用户管理

一、创建用户
概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用。
create user 用户名 identified by 密码; 
注意:oracle有个毛病,密码必须以字母开头,如果以数字开头,它不会创建用户
eg、create user xiaoming identified by oracle;

           

二、给用户修改密码
概述:如果给自己修改密码可以直接使用
SQL> password 用户名或passw
如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限
SQL> alter user 用户名 identified by 新密码
                  
三、删除用户
概述:一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有drop user的权限。
比如drop user 用户名 【cascade】
注意:在删除用户时,如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascade,即把该用户及表一同删除;

                 

四、权限
权限分为系统权限和对象权限。
何为系统权限?
用户对数据库的相关权限,connect、resource、dba等系统权限,如建库、建表、建索引、建存储过程、登陆数据库、修改密码等。
何为对象权限?
用户对其他用户的数据对象操作的权限,insert、delete、update、select、all等对象权限,数据对象有很多,比如表,索引,视图,触发器、存储过程、包等。
执行SELECT * FROM Dba_Object_Size;语句可得到oracle数据库对象。

             

五、角色
角色分为预定义角色和自定义角色。

           

六、用户管理的综合案例
概述:创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令revoke。
为了讲清楚用户的管理,这里我给大家举一个案例。
SQL> conn xiaoming/oracle
ERROR:
ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied
警告: 您不再连接到 ORACLE。
SQL> show user
USER 为 ""
SQL> conn system/oracle
已连接。
SQL> grant connect to xiaoming;
授权成功。
SQL> conn xiaoming/oracle
已连接。
SQL>
注意:grant connect to xiaoming;在这里,准确的讲,connect不是权限,而是角色。
                            
现在说下对象权限,现在要做这么件事情:
* 希望xiaoming用户可以去查询emp表
* 希望xiaoming用户可以去查询scott的emp表
grant select on scott.emp to xiaoming
* 希望xiaoming用户可以去修改scott的emp表
grant update on scott.emp to xiaoming
* 希望xiaoming 用户可以去修改/删除,查询,添加scott的emp表
grant all on scott.emp to xiaoming
* scott希望收回xiaoming对emp表的查询权限
revoke select on scott.emp from xiaoming

                  

七、权限的传递
//对权限的维护。
* 希望xiaoming用户可以去查询scott的emp表/还希望xiaoming可以把这个权限传递给别人。
--如果是对象权限,就加入with grant option
grant select on emp to xiaoming with grant option
我的操作过程:
SQL> conn scott/oracle;
已连接。
SQL> grant select on scott.emp to xiaoming with grant option;
授权成功。
SQL> conn system/oracle;
已连接。
SQL> create user xiaohong identified by oracle;
用户已创建。
SQL> grant connect to xiaohong;
授权成功。
SQL> conn xiaoming/oracle;
已连接。
SQL> grant select on scott.emp to xiaohong;
授权成功。
                             
--如果是系统权限。
system给xiaoming权限时:grant connect to xiaoming with admin option
问题:如果scott把xiaoming对emp表的查询权限回收,那么xiaohong会怎样?
答案:被回收。
下面是我的操作过程:
SQL> conn scott/oracle;
已连接。
SQL> revoke select on emp from xiaoming;
撤销成功。
SQL> conn xiaohong/oracle;
已连接。
SQL> select * from scott.emp;
select * from scott.emp
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
结果显示:小红受到诛连了。。

   

八、with admin option与with grant option区别
1、with admin option用于系统权限授权,with grant option用于对象授权。

  

 

2、给一个用户授予系统权限带上with admin option时,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户或角色的此系统权限不会因传播无效,如授予A系统权限create session with admin option,然后A又把create session权限授予B,但管理员收回A的create session权限时,B依然拥有create session的权限,但管理员可以显式收回B create session的权限,即直接revoke create session from B.   

   

 

而with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效,如grant select on table with grant option to A,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。

转载于:https://www.cnblogs.com/heyhey/p/7890323.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415240.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 获取当前的时间。年月日,时分秒,星期几

SimpleDateFormat alldate new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//获取日期时间 SimpleDateFormat year new SimpleDateFormat("yyyy");//获取年份SimpleDateFormat month new SimpleDateFormat("MM");//获取月份SimpleDateFormat m…

mac通过homebrew安装opensdk11

1、安装cask brew tap homebrew/cask-versions 2、安装adoptopenjdk/openjdk brew tap adoptopenjdk/openjdk 3、查看一下java、jdk版本 brew search java brew search jdk 4、安装adoptopenjdk11 brew cask info adoptopenjdk11 brew cask install adoptopenjdk11…

缺失值侦测与处理

缺失值的侦测的方法: 1、mice包中的md.pattern()函数可以生成一个以矩阵或数据框形式展示缺失值模式的表格 这个矩阵呢,表示像第一行缺失0个的模式有13行,像第二行缺失1个的模式有1行,如此类推 所以呢,一共就有0*131*1…

工作172:自己工作开始封装的一个小组件

其实很简单 <!--封装部门选择的插件 需要的组件 子组件--> <template><el-select :value"value" placeholder"请选择所属部门" change"handleChange"><el-optionv-for"department in departments":key"de…

高德地图 amap 设置鼠标样式

我的需求&#xff0c;要在高德地图里面做一个地图选点的功能。这个功能很简单&#xff0c;但是高德地图的默认鼠标样式是一只小手&#xff0c;不适合做选点用。 高德地图中有4中样式如下图 对应名称如下&#xff1a; pointer&#xff0c;default&#xff0c;move&#xff0c…

Android 设置定时刷新页面数据,最小自动刷新时间

设置初始时间 SimpleDateFormat df new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 String thistime df.format(new Date());SharedPreferences sharedPreferences getSharedPreferences("industryInfo", Context.MODE_PRIVATE); //私有…

eslint 设置全局 变量

我在做高德地图开发的时候&#xff0c;喜欢将map作为全局变量&#xff0c;但是eslint会显示报红。 所以需要在.eslintrc.js中加上如下配置&#xff1a; "globals": {"map": true}

Android 自定义软键盘实现

module链接&#xff1a;https://download.csdn.net/download/meixi_android/10652565 compile project(:edlibrary) , :edlibrary <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/…

微信小程序自定义组件生命周期

created 组件实例化&#xff0c;但节点树还未导入&#xff0c;因此这时不能用setData attached 节点树完成&#xff0c;可以用setData渲染节点&#xff0c;但无法操作节点 ready (不是onReady) 组件布局完成&#xff0c;这时可以获取节点信息&#xff0c;也可以操作节点 mov…

改善代码可测性的若干技巧

概述 软件的工程性体现在质量与效率。单测是构成软件质量的第一道防线&#xff0c;而单测覆盖率是软件质量的重要指标之一。 编写容易测试的代码&#xff0c;可带来更佳的单测覆盖率&#xff0c;间接提升开发效率。 为什么程序员不大写单测呢&#xff1f; 主要有如下原因&#…

fragment 调用activity方法,如dispatchKeyEvent,dispatchTouchEvent

以dispatchKeyEvent为例 1、创建回调接口FragmentKeyeventListener /*** 作者&#xff1a;created by meixi* 邮箱&#xff1a;13164716840163.com* 日期&#xff1a;2018/9/10 15*/ public interface FragmentKeyeventListener {boolean onFragmentKeyEvent(KeyEvent event)…

前端学习(2657):vue3实现计算器

第一步 引入ref 第二步 第三步

微信小程序map作为子组件wx.createMapContext失效

我是将map封装成了子组件进行使用&#xff0c;发现wx.createMapContext无论如何都没有效果。最后&#xff0c;定睛一看&#xff0c;原来将map放到子组件中&#xff0c;再使用wx.createMapContext需要增加额外的参数this 具体使用方法如下&#xff1a; const mapCtx wx.create…

小程序原生组件调用mpvue父组件方法

通过triggerEvent实现 1、小程序原生子组件 methods: {markertap () {console.log(子组件内部点击)this.triggerEvent(markertap)} }2、mpvue父组件 <marker-map id"marker-map" markertap"makertap"></marker-map>methods: {markertap () {…

昨晚通宵把服务器格式化,重新配置环境。

1.备份代码和数据 备份数据库用到命令&#xff1a;mysqldump -u 用户名 -p 数据库名 > 导出文件名 2.然后登录阿里云后台停止服务器&#xff0c;再格式化磁盘。 3.配置软件源 Ubuntu中软件更新的源服务器地址存储再/etc/apt/soures.list 每一行的开头是deb和deb-src&#xf…

AsyncTask使用详解

AsyncTask是一个抽象类&#xff0c;我们在使用时需要定义一个它的派生类并重写相关方法。AsyncTask类的声明如下&#xff1a; public abstract class AsyncTask<Params, Progress, Result> 我们可以看到&#xff0c;AsyncTask是一个泛型类&#xff0c;它的三个类型参数的…