一、用户的概念
oracle中的数据都是存到用户下的
oracle中默认的三个用户:
sys: 超级管理员用户 密码是安装时设置的口令
system: 普通管理员用户 密码是安装时设置的口令
scott: 普通用户 默认密码是tiger,必须要要修改
sysdba和sysoper的区别是:sysdba可以创建数据库,sysoper不可以
1.***创建用户--CREATE USER
语法:
CREATE USER 用户名 IDENTIFIED BY 密码
[DEFAULT TABLESPACE 表空间名] --设置用户的默认表空间
[PROFILE profilename] --设置用户的配置文件
[ACCOUNT LOCK OR ACCOUNT UNLOCK] --设置用户的锁定状态:锁定/解除锁定
例:
--1.创建一个用户u1,密码是123
create user u1 identified by 123;
--2.创建一个用户u2,密码123,设置表空间为USERS
create user u2 identified by 123 default tablespace USERS;
--3.连接到scott用户
conn scott/tiger
scott默认是锁定的状态
--4.创建一个用户u3,密码123,设置默认为锁定状态
create user u3 identified by 123 account lock;
2.**修改用户--ALTER USER
--修改用户的密码
语法 ALTER USER 用户名 IDENTIFIED BY 新密码;
例:
--修改u1的密码为1234
alter user u1 identified by 1234;
--修改用户的锁定状态
语法 ALTER USER 用户名 ACCOUNT LOCK OR ACCOUNT UNLOCK;
例:
--修改scott用户解除锁定
alter user scott account unlock;
--连接到scott用户
conn scott/tiger
--查看当前用户
show user
--修改用户表空间
语法:
ALTER USER 用户名 DEFAULT TABLESPACE 表空间名;
--修改用户的配置文件
语法:
ALTER USER 用户名 PROFILE 配置文件名;
3.**删除用户
语法:
DROP USER 用户名 [CASCADE];
如果用户下有数据库对象,就必须加上CASCADE,会把用户以及此用户下的所有数据库对象都删除掉
例:
--删除用户u3
DROP USER u3;
总结:
创建用户--CREATE USER
修改用户--ALTER USER
删除用户--DROP USER
二、权限
--登录用户u1
conn u1/1234
1.oracle权限分类
系统权限:对数据库的操作,例如登录,创建表等权限
对象权限:对其他用户下的数据库对象的操作,例如对其他用户下表的CRUD(增删改查)操作
2.常用的权限
1)系统权限:
登录:CREATE SESSION
2)对象权限
对某个用户下某张表的CRUD操作
增:insert on 用户名.表名
删:delete on 用户名.表名
改:update on 用户名.表名
查:select on 用户名.表名
增删改查: all on 用户名.表名
3.***授权
语法:
GRANT 权限|角色 TO 用户
【with admin|grant option】
with admin option:表示被授权的用户可以将系统权限再授予其他用户
with grant option:表示被授权的用户可以将对象权限再授予其他用户
--在system用户下,对u1用户授予登录权限
grant create session to u1;
--登录u1用户
conn u1/1234; --OK
--在u1用户下,查询scott用户的emp表
select *from scott.emp; --提示没有scott.emp表,其实没有权限
--切换到scott用户,查询emp表
conn scott/123;
select *from emp; --可以查到
--在scott用户,给u1用户授予查询emp表的权限
grant select on emp to u1;
--切换到u1用户,查询scott用户的emp表
conn u1/1234;
select *from scott.emp; --可以查到
练习:
--在sys用户下,给u2授予登录权限
conn sys/123 as sysdba;
grant create session to u2;
--在sys用户下,给u2授予查询scott用户下emp表的权限
grant select on scott.emp to u2;
验证
--登录u2用户
conn u2/123;
--查询scott.emp表
select *from scott.emp;
练习2:
--1.在sys用户下,创建一个用户u4
conn sys/123 as sysdba;
create user u4 identified by 123;
--2.授予登录权限
grant create session to u4;
--3.登录到这个用户下
conn u4/123;
--4.创建u5用户
conn sys/123 as sysdba;
create user u5 identified by 123;
--5.切换到u4用户,给u5授予登录权限
conn u4/123;
grant create session to u5; --提示权限不足
使用with admin option
--6.sys用户下,重新给u4授予登录权限,并且加上with admin option允许u4给其他用户授予登录权限
conn sys/123 as sysdba;
grant create session to u4 with admin option;
--7.切换到u4用户下,给u5授权
conn u4/123;
grant create session to u5; --OK
--8.登录到u5用户
conn u5/123; --OK
4.**回收权限
语法:
REVOKE 权限 FROM 用户名;
GRANT 权限 TO 用户名;
例:
--1.sys用户下,回收u5用户的登录权限
conn sys/123 as sysdba;
revoke create session from u5;
--2.登录u5用户
conn u5/123;