一个角色是一组特权,它可以授权给用户或其它角色。
特权有:create table,select on boss ,create session,insert on boss,update on boss
创建(删除 )角色:
CREATE ROLE hr_clerk
IDENTIFIED BY bonus;
DROP ROLE oe_clerk;
创建用户
CREATE USER user_name// 必填
IDENTIFIED BY password //必填
[DEFAULT TABLESPACE tablespace_name]
[TEMPORARY TABLESPACE tablespace_name]
[QUOTA quota_number [K | M] | UNLIMITED ON tablespace_name]
[PROFILE profile_name]
[PASSWORD expire]
[ACCOUNT lock| unlock]
CREATE USER 命令解释
CREATE USER username ---用户名
IDENTIFIED BY password---- 用户口令
[DEFAULT TABLESPACE tablespace ]--- 缺省的表空间,该用户创建的对象默认存在此。
examples
创建新用户lisi,密码为abcdef,表空间为users,并且在users表空间上可以使用10M的磁盘空间。
CREATE USER lisi IDENTIFIED BY abcdef
DEFAULT TABLESPACE users
QUOTA 10M ON users;
创建新用户allen,密码为abcdef,并且设置密码已过期,用户的状态为加锁。
CREATE USER allen IDENTIFIED BY abcdef
PASSWORD expire ACCOUNT lock;
使用新用户连接数据库
为新用户授予和数据库建立会话(登录)的系统权限:
GRANT CREATE SESSION TO user_name;
为新用户授予创建数据表的系统权限:
GRANT CREATE table TO user_name;
为新用户授权和数据库建立连接的角色:
GRANT CONNECT TO user_name;
显然是 查看数据库中的被授权者(也即是被赋予权利的人)以及连接数据库的特权
select grantee,privilege from dba_sys_privs
where grantee='CONNECT' order by privilege;
相关权利大会和
CONNECT角色: --是授予最终用户的典型权利,最基本的
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话 11g只有这一个
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
RESOURCE 角色: --是授予开发人员的
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
examples
为新用户zhangsan授予和数据库建立会话的权限,并用zhangsan连接数据库。
--在授权之前,用zhangsan连接数据库的操作失败
CONNECT zhangsan/abcdef;
--以system连接数据库,并使用GRANT命令为新用户授权
CONNECT system/abcdef;
GRANT CREATE SESSION TO zhangsan;
--授权后,再用zhangsan连接数据库,操作成功
CONNECT zhangsan/abcdef;
例3.5 为新用户lisi授予CONNECT的角色。
GRANT CONNECT TO lisi;
CONNECT lisi/abcdef;
修改用户zhangsan的密码为ora,并设置默认表空间为users表空间,在该表空间中可以使用无限大的磁盘空间。
ALTER USER zhangsan
IDENTIFIED BY ora
DEFAULT TABLESPACE users
QUOTA UNLIMITED ON users;
启用与禁用用户
禁用用户账户 ALTER USER user_name ACCOUNT LOCK;
启用用户账户。 ALTER USER user_name ACCOUNT UNLOCK;
为数据库中内置的用户账号scott解锁,启用该账号。 ALTER USER scott ACCOUNT UNLOCK; CONNECT scott/tiger;
删除用户 DROP USER user_name [CASCADE][如果该用户方案中已存在方案对象,则需要带有CASCADE子句。]