创建用户
create user “用户名” identified by “密码”
default tablespace “主表空间” //指定默认表空间
tempormary tablespace “temp”
profile default //指定默认资源文件
quote unlimitied on “主表空间” //指定表空间限额
*创建用户没指定表空间限额或分配过小,该用户登录操作时若导入数据可能报分配限额不够的错误。
eg:create user wjy by identified by p73; //密码要以字母开头
用户权限
①允许wjy对数据库进行访问:
*默认创建的用户没有任何权限,连登录数据库的权限都没有,使用sys或system用户赋予新建用户权限。
conn system/manager;
grant connect to wjy;
//预定义角色connect包含7种权限:ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK 建立数据库连接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
②允许wjy新建表test:
*预定义角色resource允许用户在任何一个表空间建表。
conn system/manager;
grant resource to wjy;
conn wjy/p73;
create table test (userId varchar2(30),userName varchar2(30));
desc test; //查看表结构
③允许wjy查询scott用户下的emp表:
*对象权限的控制:此种情况下只有sys、system和scott三个用户拥有权限。
conn scott/tiger;
grant select on emp to wjy;
conn wjy/p73;
select * from scott.emp;
④撤回wjy对emp表的查询权限:
*授权时使用的用户才有收回的权限,无法revoke该用户未授权的权限。
conn scott/tiger;
revoke select on emp from wjy;
⑤允许wjy查询scott用户下的emp表并且将此权限继续授权给其他用户:
*对象权限的传递:
conn scott/tiger;
grant select on emp to wjy with grant option;
conn system/manager;
create user yyp identified by j916;
grant connect to yyp;
conn wjy/p73;
grant select on scott.emp to yyp;
Q:授权成功,此时scott如果撤回wjy的查询权限,是否会影响到yyp的查询权限呢?答案是Yes!
conn scott/tiger;
revoke select on emp from wjy;
conn yyp/j916;
select * from scott.emp; //提示表或试图不存在
证明:撤销权限是级联的啊~~~~
⑥允许wjy连接到数据库并将权限继续授权给其他用户:
*系统权限的传递:
conn system/manager;
grant connect to wjy with admin option;
conn wjy/p73;
grant connect to yyp;
删除用户
一般以dba的身份去删除,用其他用户想要删除用户需要drop user 权限。
删除用户时,如果要删除的用户已经创建两表,就要在删除时带参数cascade级联删除。
drop user wjy [cascade];
解锁用户
alter user wjy account lock //锁住用户
alter user wjy account unlock //用户解锁
扩展:
权限分为:1)系统权限:描述用户对数据库访问的相关权限。
create session、create cluster、create database link、create sequence、
create synonym、create view...
2)对象权限:用户对其他用户的数据对象(table、view、trigger、procedure...)操作的权限。
select、insert、update、delete、all、create index...
角色:事先定义若干角色用于权限的批量授权。
分为:1)自定义权限
2)预定义权限:connect、dba、resource...
方案:Oracle是以方案的方式组织数据对象。