4 Oracle 用户管理
Oracle基础知识整理: | C站下载链接 |
1 Oracle 基础知识 | 1 Oracle 基础知识 |
3 Oracle 基本使用 | 2 Oracle 基本使用 |
文章目录
4 Oracle 用户管理
4.1 创建用户
4.2 删除用户
4.3 给登录用户赋权
4.4 connect角色:权限的批量授权(形象比喻:当官)
4.5 用户管理的综合案例
4.5.1.权限的传递
4.5.2使用profile管理用户口令
(1)账户锁定
(2)给账户(用户)解锁
(3)终止口令
(4)口令历史:
(5)删除profile口令
4 Oracle 用户管理
4.1 创建用户
概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用。
举例:
create user xiaoming identified by m123
命令解析:
关键词:
create user
identified by
xiaoming:用户的名字
m123:密码(oracle中密码必须以字母开头)
回车时会报错:
报错原因:你现在是普通,权限不足
解决方案:conn system/manager然后再输入
create user xiaoming identified by m123
然后就可以正常运行了,创建成功
(系统管理员可以修改其他用户的密码)
4.2 删除用户
概述:一般以dba的身份去删除某个用户,如果用其他用户去删除用户则需要具有drop user的权限。比如:drop user 用户名[cascade]
``在删除用户时,注意:
如果要删除的用户,已经创建了一个表,那么就需要在删除时带一个参数 cascade;
(cascade表示删除用户包括用户创建的表,级联删除)
4.3 给登录用户赋权
grant connect to xiaoming
给小明赋登录权限
(oracle大概有140多种权限,权限大概分为两种:系统权限和对象权限)
系统权限:是指用户对数据库访问的相关权限。
对象权限:是指用户对其他用户的数据对象访问的权限。
数据对象:是指用户对象创建的表、视图、存储过程、触发器一系列的数据库里的对象。
对象权限简单的划分:select,insert,update,delete,all,create index
eg.
希望xiaoming用户可以去查询emp表:
SQL>grant resource to xiaoming;
希望xiaoming用户可以去查询scott用户的emp表:(此语句应该由scott用户或者超级管理员来授权)
SQL>grant select on emp to xiaoming
希望xiaoming用户可以去修改scott用户的emp表:(此语句应该由scott用户或者超级管理员来授权)
SQL>grant update on emp to xiaoming
希望xiaoming用户可以去增删改查scott用户的emp表:(此语句应该由scott用户或者超级管理员来授权)
SQL>grant all on emp to xiaoming
·方案:(这条命令是用xiaoming的身份来进行查询的)方案的概念以后讲解
SQL>select * from scott.emp
4.4 connect角色:权限的批量授权(形象比喻:当官)
角色分两种:自定义角色 和 预定义角色
预定义角色:在安装数据库的时候直接分配好了
自定义角色:比较灵活,根据需要自定定义
oracle的精细度高
另外两个角色:
·dba角色:轻易不要授权,如果将该角色授予给某一个普通的用户,那么这个用户就拥有了dba所有的权限
·resource 是授予开发人员的
eg. grant resource to xiaoming;
4.5 用户管理的综合案例
概述:创建的新用户是没有任何权限的,甚至连登录数据库的权限都没有,需要为其指定相应的权限,给一个用户赋权限使用命令grant,回收权限使用命令revoke。
eg.
scott希望收回xiaoming对emp表的查询权限
revoke select on emp from xiaoming
4.5.1.权限的传递
eg.
希望xiaoming用户可以去查询scott的emp表/还希望小明可以把这个权限继续给别人
–如果是对象权限,就加入with grant option
第一步:
SQL>grant selet on emp to xiaoming with grant option;
第二步:
SQL>grant select on scott.emp to xiaohong;
–如果是系统权限
system给xiaoming权限时:如果带了with admin option就说明xiaoming可以把这个权限继续传递下去
SQL>grant connect to xiaoming with admin option SQL>grant select on system.emp to xiaohong;
如果scott 把xiaoming 对emp表的查询权限回收,那么xiaohong会怎样?
–xiaohong的权限也被收回,无法继续访问
4.5.2使用profile管理用户口令
概述:profile是口令限制,资源限制的命令集合,当建立数据库时,,oracle会自动建立名称为default的profile。当建立用户没有指定profile选项,那oracle就会将default分配给用户。
(1)账户锁定
概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba的身份去执行该命令
例子:指定tea这个用户最多只能尝试3次登陆,锁定时间2天,让我们看看怎么实现。
sql>create profile lock_account limit failed_login_attempts 3 password_lock_time 2; sql>alter user tea profile lock_account;
lock_account :你创建的那个规则的名称
命令解析:
3:代表用户输入错误的次数
2:代表锁定多少天
(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
命令解析:
10:表示密码有效期限为10天
2:表示宽限期限为2天
(4)口令历史:
概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改的信息保存到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就会提示用户重新输入密码。
例子:
1)建立profile
sql> create profile password_history limit pasword_life_time 10 password_grace_time 2 password_reuse_time 10
解析:password_reuse_time
//指定口令可重用时间即10天后就可以重用
2)分配给某个用户。
(5)删除profile口令
概述:当不需要某个profile文件时,可以删除该文件
sql>drop profile password_history[cascade]