一、用户管理与应用
1、查看用户与模式
--访问当前数据库的所有用户(执行此语句必须要有dba权限)
select username from dba_users;
--要是没有dba权限则可以执行(但是执行这条语句所返回的结果集,只能是你自己权限范围下所能够看见的)
select username from all_users;
--查看当前链接数据库的用户名
select user from dual;
2、创建用户
create user zzqq identified by 123456;
--"zzqq" 代表用户名 ,"123456" 代表密码
3、给予新用户基本权限 create session , create any table
grant create session,create any table to zzqq
--授予新用户能登录到数据库的权限,在任何模式下可以创建表的权限
4、调整用户的密码、锁定状态
--调整用户的密码
alter user zzqq identified by 654321;
--调整用户的锁定状态
----锁定状态
alter user zzqq account lock;
----未锁定状态
alter user zzqq account unlock;
5、删除用户!!
drop user zzqq cascade;
---这里表示会删除用户的所拥有的所有对象,cascade级联
二、权限管理与应用
1.权限分为系统权限和对象权限
系统权限主要是针对用户的,是系统规定用户使用数据库的权限;
对象权限主要是针对对象如(表或视图等),是用户对于表、视图的读取权限等
系统权限system privilege (创建,修改,删除,备份,授权)
CREATE SESSION:允许用户连接到数据库。
CREATE TABLE:允许用户在数据库中创建表。
CREATE VIEW:允许用户创建视图。
CREATE PROCEDURE:允许用户创建存储过程。
ALTER ANY TABLE:允许用户修改任何表的结构。
DROP ANY TABLE:允许用户删除任何表。
BACKUP DATABASE:允许用户备份数据库。
GRANT ANY PRIVILEGE:允许用户授予其他用户任何权限
对象权限object privilege
SELECT:允许用户查询数据。
INSERT:允许用户向表中插入数据。
UPDATE:允许用户修改表中的数据。
DELETE:允许用户从表中删除数据。
EXECUTE:允许用户执行存储过程或函数。
INDEX:允许用户在表上创建索引。
ALTER:允许用户修改表结构。
REFERENCES:允许用户创建外键约束
2、授予或回收系统权限
--授予权限
grant create table to username
--收回权限
revoke create table from username
3、授予或回收对象权限
--授予权限
grant select on tablename to username
--收回权限
revoke select on tablename from username
4、转交管理权限或收回管理权限(权限传递)with admin option
grant create table to userA with admin option
在登录用户A的情况下可以执行
grant create table to userB
这样userB也有了可以创建表的权限,但是userB不能够将自己创建表的权限传递给其他用户
revoke create table from userB --不保留创建表的权限
revoke create table from userB with admin option--不保留可以传递创建表权限的权限,但是任然可以创建表
三、角色管理与应用
1.角色的概念
--role 一系列权限的命名集合,目的是简化权限管理的复杂性(角色是一系列权限的集合)
--ex: 在每次建立一个新用户,都会给予用户相应的权限,如果一次建立多个就要多次赋予,比较繁琐,此时创建角色,如果你需要给多个用户赋予权限,那么可以直接将角色赋给这个用户,那么这个用户就可以有角色的所有权限
--Oracle提供了三种标准角色:connect,resource,dba
--connect,只能用于登录数据库,不能建立数据库结构(创建表,视图,索引,存储过程),不能建立实体,不能够建立表,临时用户
--resource,提供给用户额外的权限,比如可以创建表,视图,索引,过程等等
--dba,管理员,有着所有系统权限,只有DBA才可以创建数据库结构
--权限分为,系统权限和对象权限,系统权限,系统权限主要是针对用户的,是系统规定用户使用数据库的权限;而对象权限主要是针对表或视图等,是用户对于表、视图的读取权限等
1、创建角色
create role ZQ
--创建角色ZQ
2、将各类权限放入角色
--将系统权限授予用户
GRANT CREATE TABLE, CREATE VIEW TO ZQ WITH ADMIN OPTION;
--with admin option表示允许ZQ这个角色将自己的权限赋给其他角色
--将对象权限授予用户
GRANT SELECT, INSERT ON table_name TO role ZQ;
--table name 表示表名
3、将角色授予某用户
grant ZQ to s224364314