1. 创建用户
Create user scott identified by tiger(密码)
一旦创建了用户,DBA就可以将特定的系统权限授予该用户
Grant create session(连接到数据库), create table, create sequence, create view to scott;
2. 角色
角色是可以授予用户的相关权限的指定组。使得撤销和维护权限变得更容易,一个用户可以访问几个角色,而同一个角色也可以分配给几个用户。角色通常是为数据库应用程序创建的。
DBA首先创建角色。然后DBA可以将权限分配给角色,再将用户分配个角色。
Create role manager;(创建角色)
Grant create table, create view to manager;(将权限授予角色)
Grant manager to DEHAAN, KOCHHAR;(将角色授予用户)
如果向用户授予了多个角色,则他们会收到与所有这些角色关联的所有权限。
3. 更改口令
Alter user scott identified by lion;由用户自己更改,但是必须具有alter user的权限。
4. 对象权限:
不同类型的方案具有不同的对象权限。用户对于包含在该用户的方案中的方案对象自动具有所有的对象权限。对于自己所拥有的任何方案对象上的任何权限,用户都可以授予任何其他用户或角色。如果这一授权包括with grant option,则被授予者可以再将对象权限授予其他用户,否则被授予者只能使用该权限,而无法将它授予其他用户。
5. 授予对象权限:
授予对EMPLOYEES表的查询权限
Grant select on employees to sue, rich;
将更新特定列的权限授予用户和角色
Grant update(department_name, location_id) on departments to scott, manager;
要授予对某个对象的权限,则该对象必须在自己的方案中,或者必须被授予了WITH GRANT OPTION对象权限。
6. 使用WITH GRANT OPTION和PUBLIC关键字
给用户特权以传递权限:
Grant select, insert on departments to scott with grant option;
允许系统上的所有用户查询Alice的DEPARTMENTS表中的数据:
Grant select on Alice.DEPARTMENTS to public;
7. 确认授予的权限:
数据字典视图 | 说明 |
ROLE_SYS_PRIVS | 授予角色的系统权限 |
ROLE_TAB_ PRIVS | 授予角色的表权限 |
USER_ROLE_ PRIVS | 用户可以访问的角色 |
USER_TAB_ PRIVS_MADE | 授予的对用户对象的对象权限 |
USER_TAB_ PRIVS_RECD | 授予用户的对象权限 |
USER_COL_ PRIVS_MADE | 授予的对用户对象的列的对象权限 |
USER_COL_ PRIVS_RECD | 授予用户的对特定列的对象权限 |
USER_SYS_PRIVS | 列出授予用户的系统权限 |
8. 撤销对象权限:
使用REVOKE语句可以撤销授予其他用户的权限。
通过WITH GRANT OPTION子句授予其他用户的权限也会被撤销。
Revoke select, insert on departments from scott;
9. 数据库连接:
创建数据库连接:
Create public DATABASE LINK hq.acme.com
Using ‘sales’(远程数据库的服务名称);
使用数据库连接的sql语句:
Select * from emp@HQ.ACME.COM