ORACLE第一章创建授权
通过命令查看控制文件,数据文件,日志文件:
控制文件:Descv$controlfile;
数据文件:descv$datafile;
日志文件:descv$logfile;
1.执行导入.sql文件
命令语法如下:
directory_path\store_schema.sql
其中directory_path是保存store_schema.sql脚本的目录和路径
例如:以下代码演示了导入C盘下的sql脚本文件:
@c:\sql\store_schema.sql
2.在SQLPlus中切换不同的用户,例如以下命令切换到system用户登陆
connect[emailprotected]其中oracle是指服务名
3.oracle安装后,dual是默认的表名在SQLPlus中输入:
selectsysdatefromdual;
它可以返回当前日期
****注意:SQL语句以分号(;)结束
4.oracle中的数据库是以表空间存在的,以下命令创建了一个名为:yyaccp的表空间,并且指定数据文件的路径。
createtablespaceyyaccp
datafile‘D:\oracle\oradata\oracle\yyaccp.DBF‘
size5Mautoextendon;
5.oracle中可以通过命令创建用户名,以下命令创建了一个yyaccp用户名,
并为它确定默认表空间和临时表空间
createuseryyaccpidentifiedbyyyaccp
defaulttablespaceyyaccp
temporarytablespacetemp;
6.如果要给授权的用户可以在数据库中执行一定的操作那么应该为该用户授予
执行这些操作的权限,例如,如果要让这个用户连接到数据库上必须要为该
用户授予“创建会话的权限”,以下命令为yyaccp用户创建了会话权限
(使用grant语句)
grantcreatesessiontoyyaccp;
授予权限以后就可以通过yyaccp用户连接到数据库了:
7.用户密码的可以通过alter进行修改以下命令修改了yyaccp用户的密码:
alteruseryyaccpidentifiedbyaccp;
8.password命令可以用来修改当前登陆的用户的密码,在登陆后输入password
命令,sqlplus会提示输入原来的密码,然后再输入两次新密码例如:
connectyyaccp/accp;
输入:password;
sqlplus显示:
更改YYACCP的口令
旧口令:******
新口令:******
重新键入新口令:******
口令已更改
9.删除用户可以通过dropuser进行删除,以下命令删除yyaccp用户
dropuseryyaccp;
10.使用grant向用户授予不同的特权:以下通过system用户向yyaccp用户授予了创建会话、创建用户以及创建表的权限
Grantcreatesession,createuser,createtabletoyyaccp;
常用的系统特权:
Createsession
连接到数据库上
Createsequence
创建序列
Createtable
创建表
Createanytable
在任何模式中创建表
Droptable
删除表
Dropanytable
删除任何模式中的表
Createprocedure
创建存储过程
Executeanyprocedure
执行任何模式中的存储过程
Createuser
创建用户
Dropuser
删除用户
Createview
创建视图
11.使用withadminoption选项。授权的用户可以把特权授予其他用户使用
以下命令将executeanyprocedure特权授予yyaccp用户,同时指定了
withadminoption选项。
Grantexecuteanyproceduretoyyaccpwithadminoption;
12.检查授予用户的权限(通过user_sys_privs表)检查某个用户具有哪些权限:
以下命令演示了yyaccp用户连接到数据库上,并对user_sys_privs进行查询
Select*fromuser_sys_privs;
14.撤销系统特权。以下system撤销了yyaccp用户的dba权限
Revokedbafromyyaccp;
15.当授权的用户向表空间创建表或向已有的表中插入数据时,仍然提示权限不足可以通过以下方式解决例如:创建了yyaccp用户但是yyaccp用户在yyaccp表空间中建表时出现权限不足,执行以下命令:
connectsystem/manager;
alteruseryyaccpquotaunlimitedonyyaccp;
使用以下命令删除表空间同时删除表空间对应的数据文件:
droptablespaceyyaccpincludingcontentsanddatafiles;
对象特权:
16.对象特权允许用户对数据库对象执行特定的操作,比如对表进行添加、修改、删除、查询等操作。
以下表格列出了常用的对象特权:
对象特权
允许执行的操作
select
执行查询操作
Insert
执行插入操作
Update
执行修改操作
Delete
执行删除操作
execute
执行存储过程
向用户授予对象特权:
17.可以使用grant语句向用户授予对象特权,下面这个例子以yyaccp用户的身份连接到数据库,并向tuser授予以下特权:对tusertable表的select,
Insert,update对象特权进行授权
Connectyyaccp/accp;
Grantselect,insert,updateonyyaccp.tusertabletotuser;
18.以下命令对tusertable表中的name,address列的update特权授予tuser用户
Grantupdate(name,ddress)onyyaccp.tusertabletotuser;
19.使用grant选项可以使授权的用户把这种特权再授予其他用户。下面命令对tusertable表的select特权授予tuser用户,同时指定了withgrantoption选项
Grantselectonyyaccp.tusertabletotuserwithgrantoption
20.检查已授予的对象特权(通过查询user_tab_privs_made)可以检查某个用户对哪些表向其他用户开放了哪些对象特权:
Select*fromuser_tab_privs_made
user_tab_privs_made部分列
列名称
说明
Grante
该特权授予的用户
Table_name
所授予的特权所操作的对象(例如表)名
Grantor
授权者
Privilege
对该对象授予的特权
grantable
特权所授予的用户是否可以将这种特权再授予其他用户,该值等于yes或no
hierarchy
特权是否构成层次关系。该值等于yes或no
User_col_privs_made可以检查某个用户对哪些列对象开放了哪些特权。
Select*fromuser_col_privs_made;
fromuser_col_privs_made部分列
列名称
列说明
Grantee
该特权授予的用户
Table_name
所授予特权所操作的对象名
Column_name
所授予特权所操作的对象名
Grantor
授权者
Privilege
对该对象授予的特权
grantable
特权授予的用户是否可以将这种权限再授予其他用户,该值等于yes或no
如果以tuser用户身份连接到数据库上就可以通过公共对象名称sttable对yyaccp.sttable进行检索:
Connecttuser/tuser;
Select*fromsttable;
23.撤销用户对象的特权:
使用revoke语句撤销某个用户的对象特权。以下命令以yyaccp用户的身份连接到数据库上,并撤销tuser对sttable表的insert特权
Connectyyaccp/accp;
Revokeinsertonsttablefromtuser
Oracle数据库中的数据块、区、段、表空间
在最细的粒度上,Oracle存储数据到数据块中(也叫逻辑块、Oracle块或页),一个数据块对应磁盘上的一定数量字节的数据库物理存储空间。
逻辑数据库存储空间的下一个存储级别是区。一个区是分配用来存储特定信息的连续数据块。
区之上的逻辑数据库存储级别叫段。一个段是区的集合,每个区都被分配了特定的数据结构,所有的区都存储在同一表空间中。例如,每个表的数据被存储在它自己的数据段中,每个索引的数据存储在它自己的索引段中。假如表或索引是分区的,每个分区被存储在它自己的段中。
Oracle以区为单位给段分配空间。当段中存在的区满了,Oracle为该段分配另外的区。由于区是按需分配的,一个段的区可能是也可能不是连续的。
段和它的所有区存储在一个表空间中。在一个表空间中,一个段包括的区能分布在多个文件中,也即段能跨越数据文件。无论如何,每个区必须在一个数据文件中。