设为首页 收藏本站
查看: 791|回复: 0

[经验分享] Oracle 入门到精通Part 1-用户管理

[复制链接]
YunVN网友  发表于 2016-8-13 07:17:56 |阅读模式
  
学习数据库,首先得先登陆数据库,登陆需要账号吧?
  
那我们就先了解Oracle对账号的管理以及规则,
  
对以后一些涉及到数据库安全、用户权限可以更好的处理。
  
  
  默认用户
  Oracle安装会自动的生成sys用户和system用户:
  (1) sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install
  (2) system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager
  (3) 一般讲,对数据库维护,使用system用户登录就可以拉 也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
  
  创建用户 
概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用。
create user
用户名 identified by 密码; (oracle有个毛病,密码必须以字母开头,如果以字母开头,它不会创建用户)
  
  给用户修改密码 
概述:如果给自己修改密码可以直接使用
password
用户名
如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限
SQL> alter user
用户名 identified by 新密码
 
删除用户
概述:一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有drop user的权限。
比如 drop user 用户名cascade
在删除用户时,注意:
如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascade;
用户管理的综合案例
概述:创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令revoke
为了给讲清楚用户的管理,这里我给大家举一个案例。
SQL> conn xiaoming/m12;
ERROR:
ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied
警告: 您不再连接到 ORACLE
SQL> show user;
USER
""
SQL> conn system/p;
已连接。
SQL> grant connect to xiaoming;
授权成功。
SQL> conn xiaoming/m12; //
后面的为密码分开来输入。
已连接。
SQL>

  注意:grant connect to xiaoming;在这里,准确的讲,connect不是权限,而是角色。 
  
  
现在说下对象权限,现在要做这么件事情:
* 希望xiaoming用户可以去查询emp
* 希望xiaoming用户可以去查询scottemp
  grant select on emp to xiaoming
* 希望xiaoming用户可以去修改scottemp
  grant update on emp to xiaoming
* 希望xiaoming用户可以去修改/删除,查询,添加scottemp
  grant all on emp to xiaoming
* scott希望收回xiaomingemp表的查询权限
  revoke select on emp from xiaoming

//对权限的维护。
* 希望xiaoming用户可以去查询scottemp/还希望xiaoming可以把这个权限继续给别人。
--如果是对象权限,就加入 with grant option
  grant select on emp to xiaoming with grant option
我的操作过程:
SQL> conn scott/tiger;
已连接。
SQL> grant select on scott.emp to xiaoming with grant option;
授权成功。
SQL> conn system/p;
已连接。
SQL> create user xiaohong identified by m123;
用户已创建。
SQL> grant connect to xiaohong;
授权成功。
SQL> conn xiaoming/m12;
已连接。
SQL> grant select on scott.emp to xiaohong;
授权成功。
  
 
  
--如果是系统权限。
systemxiaoming权限时:
grant connect to xiaoming with admin option
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
  
问题:如果scottxiaomingemp表的查询权限回收,那么xiaohong会怎样?
答案:被回收。
  
下面是我的操作过程:
SQL> conn scott/tiger;
已连接。
SQL> revoke select on emp from xiaoming;
撤销成功。
SQL> conn xiaohong/m123;
已连接。
SQL> select * from scott.emp;
select * from scott.emp
1 行出现错误:
ORA-00942: 表或视图不存在
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
  
结果显示:小红受到诛连了。
  
 
  
 
使用profile管理用户口令
概述:profile是口令限制,资源限制的命令集合,当建立数据库的,oracle会自动建立名称为defaultprofile。当建立用户没有指定profile选项,那么oracle就会将default分配给用户。
1.账户锁定
概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间()一般用dba的身份去执行该命令。
例子:指定scott这个用户最多只能尝试3次登陆,锁定时间为2天,让我们看看怎么实现。
创建profile文件
SQL> create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
SQL> alter user scott profile lock_account;
2.给账户(用户)解锁
SQL> alter user tea account unlock;
3.终止口令
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba的身份来操作。
例子:给前面创建的用户tea创建一个profile文件,要求该用户每隔10天要修改自己的登陆密码,宽限期为2天。看看怎么做。
SQL> create profile myprofile limit password_life_time 10 password_grace_time 2;
SQL> alter user tea profile myprofile;
 
口令历史
概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改的信息存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。
例子:
1)建立profile
SQL>create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10
password_reuse_time //指定口令可重用时间即10天后就可以重用
2)分配给某个用户
删除profile
概述:当不需要某个profile文件时,可以删除该文件。
SQL> drop profile password_history casade
注意:文件删除后,用这个文件去约束的那些用户通通也都被释放了。
 
加了casade,就会把级联的相关东西也给删除掉
 
  
 
  
 
  
  
<!--[endif]-->

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-257089-1-1.html 上篇帖子: 大型ORACLE数据库优化设计方案之一 下篇帖子: Access分页及效率分析(MSSQL Server、Oracle分页)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表