由于看书和看文字教程有点不够系统,网上找了一下,决定看韩顺平老师的视频,顺便做一下笔记
oracle默认用户scott
Oracle10g安装后默认scott被锁定
解锁:
1、登陆管理员权限 conn sys/密码 as sysdba;
2、解锁 alter user scott account unlock;
3、首次登陆 conn scott/tiger; 将提示修改密码
修改密码:
登陆用户后,使用命令
passw 或 password 回车修改
(管理员/系统用户)创建用户:
create user 用户名 identified by 密码;
此时,创建用户完成,但没有任何权限!!包括登陆数据库。
赋予权限
grant 角色 to 用户名 : 任命用户一个角色(如connect),该角色包含登陆连接等权限
权限
系统权限:用户对数据库的相关权限(登陆、建表、修改密码等等)
对象权限:用户对其他用户的
数据对象操作的权限。
select, insert, update, all(表的所有权限),
数据对象:用户创建的表、存储过程、视图、触发器等等
角色:一组的权限
预定义角色:如:
connect角色:连接登陆等基本权限
dba角色:该角色就是数据管理员,具备很多权限,除了启动和关闭数据库的权限(sysdba就可以)
resource角色:可以在任意表空间建表
自定义角色:由dba或具有create role系统权限的用户建立,可指定验证方式(不验证或数据库验证等)
不验证:(若角色是公用的,可以采用不验证的方式建立角色)
create role 角色名 not identified;
授权给别人某种对象权限
grant select on 具体表[名] to 用户名; 授权select权限给czw,表的所有者、管理员等才用权授予其他用户该权限
收回权限
revoke select on 具体表[名] from 用户名;
例子:
create user czw identified by czw; //此时用户名czw密码czw的用户已创建,但不能登陆数据库
grant connect to czw; //此时czw可以连接数据库
grant resource to czw; //此时czw可以建表和查看修改自己的表
权限的维护 --- 使权限可以传递
----如果是对象权限,增加选项 grant with option
如下 :
先再创建一个用户hll/hll
create user hll identified hll; //创建用户hll
grant connect to hll; //使hll可以登录数据库
切换回scott用户,授予czw权限
conn scott/czw
grant select on emp to czw with grant option; //这样czw可以授权给其他用户了
conn czw/czw
grant select on emp to hll
----如果是系统权限,增加选项 grant admin option
使用profile管理用户口令
profile是口令限制
当建立数据库时,oracle自动建立名称为default的profile。当建立用户没有指定profile选项,那么oracle就会将默认的default分配给用户。
create profile [lock.account] limit ;
lock.account 用户自定义的profile名字
例子:
SQL> conn system/czw
已连接。
SQL> create profile proA limit failed_login_attempts 3 password_lock_time 2;
配置文件已创建
SQL> alter user hll profile proA;
用户已更改。
SQL> conn hll/123
ERROR:
ORA-01017: 用户名/口令无效; 登录被拒绝
警告: 您不再连接到 ORACLE。
SQL> conn hll/1234
ERROR:
ORA-01017: 用户名/口令无效; 登录被拒绝
SQL> conn hll/12345
ERROR:
ORA-01017: 用户名/口令无效; 登录被拒绝
SQL> conn hll/hll
ERROR:
ORA-28000: 帐户已被锁定
解除锁定
conn system/czw;
alter user hll account unlock; //上面hll用户被锁定了,该命令可以解除锁定
给hll创建一个profile文件 要求用户每隔10天修改自家的登陆密码,宽限期维2天
create profile myprofile limit password_life_time 10 password_grace_time 2;
alter user hll profile proB;
删除profile
drop profile [profile文件名]