oracle用户管理
来源:互联网 发布:淘宝首页装修要多少钱 编辑:程序博客网 时间:2024/06/03 21:58
第二章 Oracle用户管理
【目标】
1. 掌握用户的创建、删除、修改
2. 掌握基本的权限管理
3. 了解数据字典及基本操作
【内容】
一、 用户的创建、删除、修改
u 创建用户
语法:createuser 用户名 identified by 密码;
注:在oracle中创建用户只能由管理员或者具有管理员的权限的用户创建。
案例:新建用户abc
新建的用户是没有任何权限的,包括连接数据库的权限。
新创建的用户是没有任何权限的,直接登录会报如下错误:
此时必须有管理员授权,才可以连接数据库。
如果新建的用户想要连接数据库,就需要被赋予权限,只有管理员才能赋予新用户权限。
赋予用户连接数据库的权限:grant create session to abc;
赋予用户dba的角色:grantdba to abc;
DBA: 数据库管理员
u 修改密码
在oracle中如果要修改自己的密码直接使用passw[ord]命令,如果要修改其他用户的密码则必须具备dba角色或alteruser权限
1. 修改自己的密码
2. 修改其他用户的密码
语法:alter user 用户名 identified by 密码;
u 修改用户信息
在oracle数据中修改用户信息只能由管理员或者具有管理员权限的用户操作。
1. 修改用户密码
alter user 用户名identified by 密码;
2. 解锁用户/锁定用户
解锁用户: alter user 用户名account unlock;
锁定用户:alter user 用户名 account lock;
u 删除用户
语法:drop user 用户名;
如果当前用户拥有数据库表、视图、序列等等,删除用户就需要指定关键字:cascade.
drop user abc cascade;
二、 基本的权限管理
Oracle权限:系统权限和用户权限(对象权限/角色权限)
系统权限:创建表,创建用户,修改表或者用户,视图等等。
对象权限:包含另外对象数据库信息的查询,修改等等操作的
Oracle 对象之间访问数据库内容,需要用户名.表名访问。
对象与对象之间是不可以直接操作的,也是需要具备相应的权限。
2.1 授权
语法:grant 权限/角色 to 用户名;
系统权限:create table,create session,drop user,drop table等等
角色权限:dba 管理员
connect:连接数据库
resource: 创建表的权限
案例1:创建用户abc1,并赋予他连接数据库和创建表的权限。
步骤:
1. sys管理员连接数据库:conn sys/system as sysdba;
2. 新建用户abc1:create user abc1 identified byabc1;
3. 给abc1用户授权:事实上、
grant connect,resource to abc1;
4. abc1 连接数据库:
案例2: 授予abc1 查询scott 用户emp表的权限。
步骤:
1. sys管理员连接数据库:conn sys/system as sysdba;
2. 给abc1用户授权:
grant select on scott.emp toabc1;
3. 连接abc1,查询scott用户下emp表
案例3: 授予abc1用户scott的emp表的所有权限。
步骤:
1. sys管理员连接数据库:conn sys/system as sysdba;
2. 给abc1用户授权:
grant all on scott.emp to abc1;
3. abc1 连接数据库:conn abc1/abc1;
4. 向scott的emp表中插入一条数据:
insert into scott.emp(empno,ename) values(123, ‘zhangsan’);
2.2 回收权限
Oracle中只有管理员才可以回收权限。
语法:revoke 权限/角色from 用户名;
案例1: 回收abc1对于scott的emp表的所有权限。
步骤:
1. sys管理员连接数据库: conn sys/system as sysdba;
2. 撤销abc1的权限:revoke all on scott.emp fromabc1;
3. 连接abc1:conn abc1/abc1;
4. 查询下scott用户的emp表:select * from scott.emp;
案例2: 回收abc1对于连接数据库的权限。
步骤:
1. sys管理员连接数据库: conn sys/system as sysdba;
2. 撤销abc1的权限:revoke connect from abc1;
3. abc1连接数据库:conn abc1/abc1;
2.3 给其他用户授权的能力
with admin option: 授予系统相关的admin权限
with grant option:授予对象相关的grant 权限
语法:grant 权限to 用户名 with admin option;
grant 权限 to 用户名with grant option;
案例.1:给abc1赋予连接数据库,创建表和授予别的用户的权限的权限,并授予abc2用户连接数据库的权限。
步骤:
1. sys管理员连接数据库: conn sys/system as sysdba;
2. 给abc1用户授权: grant create session, create table to abc1 with adminoption;
3. 创建用户abc2:createuser abc2 identified by abc2;
4. abc1连接数据库: conn abc1/abc1;
5. abc1给abc2授权create session:grant create session to abc2;
6. abc2连接数据库:conn abc2/abc2;
案例2:给abc1赋予scott用户下emp表的所有权限和授予别人权限的权限,并给abc3用户授予scott用户下emp表的所有权限。
步骤:
1. sys管理员连接数据库: conn sys/system as sysdba;
2. 给abc1用户授权: grant all on scott.emp to abc1with grant option;
3. 创建用户abc3:createuser abc3 identified by abc3;
4. 给abc3用户授予连接数据库的权限:grant create session to abc3;
5. abc1连接数据库: conn abc1/abc1;
6. abc1给abc3授权all on scott.emp:grant all on scott.emp to abc3;
7. abc3连接数据库:conn abc3/abc3;
8. abc3查询scott用户下emp表的内容:select * from scott.emp;
2.3 多级权限回收/撤销
语法:revoke权限 from 用户;
案例1: 结合2.2中案例2,回收abc1对于scottemp的所有权限,测试abc3是否还有scottemp表的权限。回收对象权限
步骤:
1. sys管理员连接数据库: conn sys/system as sysdba;
2.回收abc1对于scott用户emp表的权限;
3.测试abc3对于scott emp表的权限:
connabc3/abc3;
select * from scott.emp;
结果: abc1没有emp表上的权限,abc3没有了scott用户emp表的权限。
总结:对于对象权限,sys——>abc1——>abc3,当sys回收abc1权限的时候,abc3的权限也被回收了。
案例2:结合2.2中案例1,回收abc1连接数据库的权限,测试abc2是否还可以连接数据库。
步骤:
1.sys管理员连接数据库:conn sys/system as sysdba;
2.Sys回收abc1的create session的权限,测试abc1是否还能连接数据库
Revoke create session from abc1;
3. 测试abc2是否可以连接数据库。conn abc2/abc2;
结果:abc1不能连接数据库,abc2依然可以连接数据库。
总结:对于系统权限,sys——>abc1——>abc2,然后由sys将abc1的权限回收,abc2依然可以连接数据库。
练习:不要用sys回收abc2和abc3,多测试几个级联用户,由上级回收下级的权限,测试下下级的权限是否还可以使用。
A with admin/grant option——>B——C,A回收B,测试C是否还具备那个权限。
三 数据字典及基本操作,用户管理
3.1 基本操作
u 对表的操作
1.查看当前用户所拥有的表:
select * from user_tables;
查看当前用户所有表的表名:
select table_name from user_tables;
u 对用户的操作
1. 查询当前有多少用户(必须用管理员身份才可以查询)
Select *from all_users;
查询dba:select * from dba_users;
查询当前用户的信息:select * from user_users;
u 对权限的操作
1. 查询所有具有系统权限的dba:
Select *from dba_sys_privs where grantee=’DBA’;
2. 查询数据库中所有的角色role
Select *from dba_roles;
3.2 profile管理用户
u 创建profile文件与指定给用户
案例1. 如果用户连续3次登陆失败,锁定用户,锁定时间2天.lock
步骤:
1.先创建一个profile文件
create profile lock_account(文件名) limit failed_login_attempts3 password_lock_time 2;
2.将profile文件指定给用户
alter user abc2 profilelock_account;
3.abc2连续三次登陆失败,账号锁定。
4. 解锁abc2用户 alter userabc2 account unlock;(管理员身份解锁)
u 解除用户的profile文件
Alter user abc2 profile default;
案例2:用户每隔10天修改密码,宽限2天。
步骤:
1.sys管理员连接数据库:conn sys/system as sysdba;
2.新建profile文件,用来限制用户十天修改密码,宽限期是2天。
create profile change_pwdlimit password_life_time 10password_grace_time 2;
3.将profile配置文件指定给相应的用户
Alter user abc2profile change_pwd;
案例3:限制用户修改密码不能使用以前用过的密码
步骤:
1.sys管理员连接数据库:conn sys/system as sysdba;
2.新建profile文件,限制用户修改密码,不能使用用过的密码
Create profilepassword_history limit password_life_time 10 password_grace_time 2 password_reuse_time2;
3.abc2连接数据库,然后连续两次修改密码:
u 查询所有的profile文件
select *from dba_profiles;
u 删除profile文件
drop profileprofile文件名;
drop profilepassword_history;
如果profile文件已经指定给用户了,就需要加上cascade关键字。
- oracle用户管理
- Oracle用户管理
- Oracle用户管理
- ORACLE用户管理
- oracle用户管理
- oracle用户管理操作
- Oracle用户管理
- oracle 用户管理
- Oracle用户管理
- oracle 用户管理
- Oracle的用户管理
- Oracle用户管理
- Oracle用户管理
- Oracle 数据库用户管理
- 3.oracle用户管理
- 【Oracle】用户管理
- oracle 用户管理
- oracle用户的管理
- Hibernate之单向一对多映射(使用maven构建)
- Java NIO深入详解与体系分析
- HDU 6124 Euler theorem
- PEP8在pycharm里面的配置
- qbxt国庆水题记day3
- oracle用户管理
- 在Studio中运用HttpClient时报错可能原因
- 支持多位数,括号,四则运算,的计算器算法c++实现
- 国庆假期总结
- 表管理
- 转圈的箭头
- 310. Minimum Height Trees
- 请求网络数据
- 系统服务的控制