创建用户 语法如下:
CREATE USER 用户名 IDENTIFIED BY 密码 --创建用户同时设置密码,但用户名和密码不能使oracle的保留字(如:DROP、CREATE等)也不能以数字开头(若要设置为数字,则需将数字使用双引号声明,如:“9977”)
[DEFAULT TABLESPACE 表空间名称] --用户存储默认使用的表空间,当用户创建对象没有设置表空间时,将保存在此处指定的表空间下,这样可以和系统表空间区分
[TEMPORARY TABLESPACE 表空间名称] --用户使用的临时表空间
[QUOUT 数字[K | M]UNLIMITEND ON 表空间名称 --用户在表空间上的使用限额 ,可以指定多个表空间的限额,如果设置为‘UNLIMITED’表示不设置限额
QUOUT 数字[K | M]UNLIMITEND ON 表空间名称…]
[PROFILE 概要文件名称 | DEFAULT] --用户操作的资源文件,如果不指定则使用默认配置资源文件
[PASSWORD EXPIRE] --用户密码失效,则在第一次使用时必须修改密码
[ACCOUNT LOCK | UNLOCK] --用户是否为锁定状态,默认为‘UNLOCK’
ALTER USER 用户名 IDENTIFIED BY 新密码 --修改密码
ALTER USER 用户名 ACCOUNT LOCK --修改用户为锁定状态
ALTER USER 用户名 ACCOUNT UNLOCK --修改用户为解锁状态
ALTER USER 用户名 PASSWORD EXPIRE --让用户密码失效
drop user 用户名; --删除用户
drop user 用户名 cascade; --若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。
授权角色 :oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba.
-
connect role(连接角色)
–临时用户,特指不需要建表的用户,通常只赋予他们connect role.
–connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。
–拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他 数据的链(link) -
resource role(资源角色)
–更可靠和正式的数据库用户可以授予resource role。
–resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。 -
dba role(数据库管理员角色)
–dba role拥有所有的系统权限
–包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有
grant connect, resource to 用户名; --授权命令
revoke connect, resource from 用户名; --撤销权限
除了前面讲到的三种系统角色----connect、resource和dba,用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。
为了创建role,用户必须具有create role系统权限。
1》创建角色 :create role 角色名;
2》授权角色 :grant select on class to 角色名; --注:现在,拥有testRole角色的所有用户都具有对class表的select查询权限
3》删除角色 :drop role 角色名; --注:与testRole角色相关的权限将从数据库全部删除
为用户授权系统权限:grant 权限,… to 用户名|角色名 [public] [with admin option]
to --设置授予权限的用户、角色或者使用 public 将此权限设置为公共权限
with admin option --将用户授予的权限继续授予其他用户
撤销系统权限 : revoke 权限,… from 用户名
授予对象权限 : grant 对象权限,…|ALL on 对象名称 to 用户名|角色名 [public] [with admin option]
all --表示设置所有对象权限
on --要授予对象的对象名称
撤下对象权限: revoke 权限,… on 对象名称 from 用户名
创建角色: create role 角色名称 [not identified | identified by 密码] --角色是一组权限
为角色授权:grant 权限,… to 角色名称
删除角色: drop role 角色名称
select * from role_sys_privs where role in (‘角色名称’) --查看角色的权限
角色密码修改:alter role 角色名称 identified by 密码
取消角色密码:alter role 角色名称 not identified
预定义角色:
exp_full_database 导出数据库权限
imp_full_database 导入数据库权限
select_catalog_role 查询数据字典权限
execute_catalog_role 数据字典上的执行权限
delete_catalog_role 数据字典上的删除权限
dba 系统管理的相关权限
connect 授予用户最典型的权限
resource 授予开发人员的权限
grant execute on AGE to LIS; --将存储过程AGE权限授予LIS用户
grant select on CARD_TA_MEMO to LIS;–将表CARD_TA_MEMO权限授予LIS用户
例子:
-- Create the user
create user MKJK
identified by "";
-- Grant/Revoke object privileges
grant select on HISDB.EXAM_TA_BILL to MKJK;
grant select on HISDB.EXAM_TA_BOOK to MKJK;
grant select on HISDB.EXAM_TA_REP to MKJK;
grant select on HISDB.INP_TA_BOOK to MKJK;
grant select on HISDB.INP_TA_DIAG to MKJK;
grant select on HISDB.INP_TA_ORDER to MKJK;
grant select on HISDB.INP_TA_PRESC_D to MKJK;
grant select on HISDB.INP_TA_PRESC_M to MKJK;
grant select on HISDB.INP_TA_TRAN to MKJK;
grant select on HISDB.INP_VD_FEE_CLINIC to MKJK;
grant select on HISDB.LAB_RESULT to MKJK;
grant select on HISDB.LAB_TA_BILL to MKJK;
grant select on HISDB.LAB_TA_BOOK to MKJK;
grant select on HISDB.MED_TD_CODE to MKJK;
grant select on HISDB.MED_TD_ORGI to MKJK;
grant select on HISDB.MED_TD_SUPP to MKJK;
grant select on HISDB.OPE_MAS_BILL to MKJK;
grant select on HISDB.OPE_TA_BILL to MKJK;
grant select on HISDB.OPE_TA_MASTER to MKJK;
grant select on HISDB.OUT_TA_BOOK to MKJK;
grant select on HISDB.OUT_TA_DIAG to MKJK;
grant select on HISDB.OUT_TA_ORDER to MKJK;
grant select on HISDB.OUT_TA_ORDER_BILL to MKJK;
grant select on HISDB.OUT_TA_PRESC_D to MKJK;
grant select on HISDB.OUT_TA_PRESC_M to MKJK;
grant select on HISDB.PAT_TA_BINFO to MKJK;
grant select on HISDB.PUB_TA_LIMIT_DRUG to MKJK;
grant select on HISDB.PUB_TA_USER to MKJK;
grant select on HISDB.PUB_TD_CLINIC to MKJK;
grant select on HISDB.PUB_TD_CODE to MKJK;
grant select on HISDB.PUB_TD_DIAG to MKJK;
grant select on HISDB.PUB_TD_DOCTOR_GROUP to MKJK;
grant select on HISDB.PUB_TD_FEE to MKJK;
grant select on HISDB.PUB_TD_OPER to MKJK;
grant select on HISDB.PUB_TD_ORGI to MKJK;
grant select on HISDB.PUB_TR_FEE_CLINIC to MKJK;
grant select on HISDB.V_INP_TA_ORDER to MKJK;
grant select on INP.INP_TA_BILL to MKJK;
grant select on MED.MED_TA_IMP_M to MKJK;
-- Grant/Revoke role privileges
grant connect to MKJK;
grant resource to MKJK;
-- Grant/Revoke system privileges
grant create any view to MKJK;
grant unlimited tablespace to MKJK;