适合初学者的学习
常识:
1. DDL:数据定义语言,创建、修改、删除一张表
2. 数据操纵语言,向一张表中进行增、删、改(执行完命令要对执行提交操作)
3. DCL:数据控制语言,授权和撤销权限
基础知识:
- 命令行开启监听器:lsnrctl start
- 开启事物:oradim -starup -sid orcl
- 链接用户:sqlplus / as sysdba
创建用户:
1.创建会话(session)权限给lisi用户:
->grant create session to lisi;
2.创建建表(table)权限给lisi用户:
->grant create table to lisi;
3.创建不受上线的表空间的使用权限给lisi用户:
->grant unlimited tablespace to lisi;
4.撤销创建会话权限(其他格式类似):
->revoke create table from lisi;
5.通过用户视图方式查看当前用户有哪些权限:
->select * from user_sys_privs;
注意:
1、可以同时授予和撤销权限:
->grant create table,unlimited tablespace to lisi;
2、当插入、更新、修改数据时候要用commit提交插入的数据
对象权限(谁拥有谁授权):
默认情况下:个人创建的用户与用户之间他们的表是完全隔离的,所以说它们之间是不能够访问的,通过授权可以改变对象之间的权限。但是sys用户可以访问任意用户的表。(假设有lisi、wangwu两用户,表分为:mytable、mytab)
1.在wangwu用户中把它的mytab表的查询权限给lisi用户(插入、删除…同样意思):
->grant select on mytab to lisi;
2.在wangwu用户中把它的mytab表的所有权限给lisi用户:
->grant all on mytab to lisi;
3.在wangwu用户中把它的mytab表的所有权限在lisi用户全部撤销:
->revoke all on mytab from lisi;
4.查看整个表有哪些权限(如果已经把权限精确到列那么此数据字典就不起作用了):
->select * from user_tab_privs;
5.把权限定位到某一列来进行对象之间的授权(比如把wangwu用户中的mytab表的name列的更新权限授权给lisi):
->grant update(name) on mytab to lisi;
6.当权限精确到列可以通过下面命令来查询权限:
->select * from user_col_privs;
全局权限:
1.把一个用户的所有表的创建权限授权给所有用户:
->grant create any table to public;
2.把一个用户的一个表的删除权限给public (wangwu用户中mytab表):
->grant delete mytab to public;