Oracle用户和权限管理
1、查看实例中所有用户

2、创建用户
管理员创建用户
create user 用户名 identified by 密码
新建用户无法登录到 oracle
锁定/解锁账户
alter user username account lock/unlock
设定用户密码过期
alter user username password expire
修改密码
给自己修改
password 用户名
给别人修改 需要dba权限
alter user 用户名 identified by 新密码
删除用户
drop user username cascade
note:cascade:当用户下有表的时候,必须使用cascade级联删除。
3、 新建用户如果想登录需要以下步骤
1.建立表空间
create tablespace gongshangju datafile '/home/oracle/app/oracle/oradata/gongshangju' size 512M autoextend on next 256M;
2.建立用户并指定默认表空间
CREATE USER gongshangju IDENTIFIED BY gongshangju DEFAULT TABLESPACE gongshangju;
3.为建立用户授权(分配权限)
GRANT RESOURCE,DBA,CONNECT TO gongshangju;
在没有表空间的情况下想让用户登录
grant create session to gongshangju;
4、 权限
权限允许用户访问属于其它用户的对象或执行程序侨慎,
ORACLE系统提供权限:Object 对象级、System 系统级
1.系统权限 系统权限是和数据库管理相关的权限(系统权限是 对诸盯段用户而言)
主要 是指 create user create SESSION权限 cteate table crate view create sequence create trigger USER权限 等操作
一个用户应该具有的基本权限包含:
CREATE SESSION CREATE TABLE CREATE SEQUENCE CREATE VIEW CREATE PROCEDURE
分配系统权限
grant 权限/角色 to 用户
回收系统权限
revoke 权限/角色 from 用户
2.对象权限 对象权限是和用户操作数据对象相关的权限
主要 是指 update insert delete select alter 表 对象 序列 触发器等操作权限
分配对象权限
grant delete on 表名 to 用户名/角色
回收对象权限
revoke delete on 表名 from 用户名/角色
5、 跨实例赋予权限
1.想让其躲劣它用户拥有curd scott的emp表的权限
1. conn scott/m123;
2. grant curd on emp to xiaohong;
conn xiaohong/xiaohong;
select * from scott.emp;
设置的权限具体到列上
grant update(id) on s_emp to jd1613;
给jd1613赋予能够更新s_emp表上id列的权限。
注意要点:1.查询的时候要加上xx.表名
2.不能给列赋予查询权限,可通过创建视图来解决



6、回收权限:同系统权限。
语法:revoke xxx on obj from user; note: 通过with grant option赋予额权限也会被回收。
例如: revoke select , update on ceshi from choy;
权限转移
表示得到权限的用户,可以把权限继续分派给其它人
系统权限转给其它人 with admin option
grant resource to user with admin option;
对象权限转给其它人 with grant option
grant select on scott.emp to stu with grant option;
7、 角色
如果有多个用户他们都具有相同的权限(create session,create table,create sequence),赋予权限的动作过于麻烦,要给每个用户分别制定这些权限,因此oracle提出角色的概念,可以 将权限赋值给角色,然后再将角色赋值给用户。
1.预定义角色
(把常用的权限集中起来,形成角色 dba connect resource(curd))
2.自定义角色
创建角色 testrole
create role testrole not identified;
授权角色权限
grant create seeeion to testrole;
授权用户角色
grant testrole to username;
删除角色
drop.role testrole;