数据库控制语言的功能室控制用户对数据库的存取权限。
用户对某类数据具有何种操作权限是有DBA决定的。Oracle
通过GRANT语句完毕权限的授予,通过REVOKE语句完毕对权限的收回。
权限分为系统权限和对象权限。系统权限是对于数据库的权限。对象权限是操作数据库对象的权限。
创建用户
基本的语法:
CREATE USER user_name
IDENTIFIED BY password;
在用户创建成功之后,系统管理员DBA会赋予用户一些权限,来完毕对应的操作。
不具有某些操作权限的用户,是无
法完毕操作的。
例:创建用户test ,password:test001
create user test
identified by test001可是让使用上面创建的用户和password进行登录时确无法登录成功。
由于该没用没有create session 权限。
要授予该权限则要使用grant语句。
授予权限
基本的语法:
GRANT 权限1 ,权限2。... TO user_name ;
应用程序开发人员。一般应该具有下面权限:
CREATE SESSION(创建会话)
CREATE TABLE(创建表)
CREATE SEQUENCE(创建序列)
CREATE VIEW(创建视图)
CREATE PROCEDURE(创建过程)
例:给test用户授予创建会话权限。
grant create session to test ;
将create session 赋予用户之后,就能够正常的与数据库连接了。表示已经创建了一个session 会话。此时假设该用
户要创建表。序列。视图,则要授予上面的所有权限。
在授予了create table 的权限之后。还是无法创建表的,由于
此时是没有表空间。还要分配表空间才干创建表。
上面的操作还是比較的繁琐的。事实上能够把多个权限封装成一个角色,在把该角色赋予给用户。
角色
创建角色:
CREATE ROLE testrole ;
为角色赋予权限:
GRANT CREATE TABLE , CREATE VIEW TO testrole ;
将角色授予用户:
GRANT testrole TO test ;
Oracle 中提供了两个基本的角色:CONNECT ,RESOURCE 。能够直接将这个两个角色授予给用户。
改动用户password
基本的语法
ALTER USER user_name
IDENTIFIED BY new_password ;
来改动password。
分配对象权限
不同的对象具有不同的对象权限,对象的拥有者拥有全部权限。对象的拥有者能够向外分配权限。
基本的语法:
GRANT 操作 ON 其它用户.表名 TO 用户
例:假设test用户想要訪问scott用户下的emp表。并进行查询、删除。则要取得訪问该表的权限。
GRANT select , delete ON scott.emp TO test ;
此时test用户,便能够对emp表进行查询和删除操作 了 。
WITH GRANT OPTION 和PUBLIC keyword。with grant option 是被授权的用户还可将获得的权限在授给其它
的用户。public 是为全部的用户都分配权利。
回收权限
基本的语法
rovoke 权限 on 用户.表名称 from 用户 ;
例:回收test用户获得查询和删除权限
revoke select ,delete on scott.emp from test ;
除了使用语句创建权限之外。也能够直接在Enterprise Manager console 下进行创建。不在赘述。