oracle---用户管理

sys是超级管理员,他比system多了一个权限---创建数据库create database

日常对oracle管理过程中,使用system就够了

在删除用户时,注意 如果要删除的用户,已经创建了表,那么就需要在删除时带一个参数
cascade---把表也会删掉

创建用户: create user mytest identified by m123;
修改密码: passw[ord]:如果是修改自己的密码,直接打这个命令就可以,如果要修改其他用户的密码,需要用sys/system登录


变成system用户,然后授权给xiaoming 
grant connect to xiaoming. (授予了一个用户(权限的集合)给小明)
revoke connect from xiaoming(不过注意的是如果是scott授予的权限只能由scott收回,即便是sys也不能收回,解铃还须系铃人)


权限:
系统权限----描述的是一个用户对数据库访问的权限,比如:建库,建表,建索引,登陆数据库(create session),修改密码。。

对象权限----用户对其他用户的数据对象(表,视图,存储过程,触发器,序列,同义词,连函数都叫做数据对象,还有package)访问权限
比如:insert,update,delete,select,create index ,all(这个表示对这张表的所有权限)......
授权的语法: grant select on emp to xiaoming



角色:
预定义角色---
常用的有connect角色
dba 角色--这个角色不要授给普通用户
resource---他可以让被授予的用户在任何一个表空间建表

自定义角色


select * from scott.emp; //注意这里的scott是方案的意思

如果小明可以查询scott的表,而且还希望小明可以把这个权限继续给其他人,这叫做权限的传递
--如果是对象权限,那么就加入with grant option
grant all on emp to xiaoming with grant option
---如果是系统权限
system给xiaoming权限时:
grant connect to xiaoming with admin option(注意这里connect是系统权限的集合)

如果scott把xiaoming对emp表的查询权限回收了,那么xiaohong还有没有权限呢?
答案是: 没有。。。。株连九族


使用profile管理用户密码(又称为口令)
profile----放在前面的文件,也就是你对数据库操作前,数据库先读这个文件,从而在登录的时候就对用户进行限制。。。

1。账户锁定----锁定登录次数等。。
例子:指定tea 这个用户最多只能尝试3次登录,锁定时间为2天
create profile lock_account limit failed_login_attempts 3 
password_lock_limit 2;(创建profile文件,文件名是自己取的lock_account)
alter user tea profile lock_account;(最少也要锁定1天,不能精确到时,分,秒),改变用户tea的登录前文件为lock_account,可能先前的登录前文件是空文件嘛

(2)
解锁:
alter user tea account unlock;  (alter可以理解为改变用户的状态)改变用户tea的账户状态为解锁状态


(3)
为了让用户定期修改密码,可以使用终止口令的指令来完成,
同样这个命令也需要dba身份,这个需求对高级管理员来说有用对普通用户价值不大
例子:给前面创建的用户tea创建一个profile文件,要求该用户每隔10天要修改自家的登录密码,宽限期为2天

create profile myprofile limit password_life_time 10 password_grace_time 2;(从第十天就开始警告你,要你改密码,如果第13天还没改的话,以前的密码也失效了)
alter user tea profile myprofile;

删除profile...
drop profile password_history [cascade]

文件操作命令:
start 和@ 运行sql脚本
sql>@ d:\a.sql

edit:编辑sql 脚本
sql>edit d:\a.sql

spool:可以将sql*plus屏幕上的内容输出到指定文件中
sql> spool d:\a.sql 并输入sql>spool off


习题:
1。创建用户tea,stu,并给这两个用户resource,connect角色
2。使用scott用户吧对emp表的select 权限给tea
使用tea查询scott的emp表
使用scott用户吧对emp表的所有权限赋给tea
使用tea更新/删除/插入scott的emp表
使用scott收回权限

3。想办法将让tea吧自己拥有的对scott.emp的权限转给stu
使用stu查询scott用户的emp表
使用tea收回给stu的权限

你可能感兴趣的:(oracle,sql,脚本)