ORACLE 第一章创建授权
通过命令查看控制文件,数据文件,日志文件:
控制文件 : Desc v$controlfile;
数据文件 :desc v$datafile;
日志文件: desc v$logfile;
1. 执行导入 .sql文件
命令语法如下:
directory_path\store_schema.sql
其中 directory_path 是保存 store_schema.sql 脚本的目录和路径
例如:以下代码演示了导入C盘下的 sql 脚本文件:
@c:\sql\store_schema.sql
?
2. 在SQL Plus 中切换不同的用户,例如以下命令切换到 system 用户登陆
connect system/manager@oracle 其中oracle 是指服务名
?
3. oracle 安装后,dual 是默认的表名 在SQL Plus 中输入:
select sysdate from dual;
它可以返回当前日期
?
**** 注意:SQL语句以分号(;)结束
?
4. oracle 中的数据库是以表空间存在的,以下命令创建了一个名为:yyaccp的表空间,并且指定数据文件的路径。
?
create tablespace yyaccp
datafile 'D:\oracle\oradata\oracle\yyaccp.DBF'
size 5M autoextend on;
?
5. oracle 中可以通过命令创建用户名,以下命令创建了一个 yyaccp 用户名,
并为它确定默认表空间和临时表空间
create user yyaccp identified by yyaccp
default tablespace yyaccp
temporary tablespace temp;
?
6. 如果要给授权的用户可以在数据库中执行一定的操作那么应该为该用户授予
执行这些操作的权限,例如,如果要让这个用户连接到数据库上必须要为该
用户授予“创建会话的权限”,以下命令为 yyaccp 用户创建了会话权限
(使用grant语句)
grant create session to yyaccp;
授予权限以后就可以通过 yyaccp 用户连接到数据库了:
connect yyaccp/yyaccp@oracle;
?
7.用户密码的可以通过 alter 进行修改 以下命令修改了 yyaccp 用户的密码:
alter user yyaccp identified by accp;
?
8. password 命令可以用来修改当前登陆的用户的密码,在登陆后输入password
命令,sql plus 会提示输入原来的密码,然后再输入两次新密码 例如:
connect yyaccp/accp;
输入: password;
sql plus 显示:
更改YYACCP的口令
旧口令: ******
新口令: ******
重新键入新口令:******
口令已更改
?
?
?
9. 删除用户可以通过 drop user 进行删除,以下命令删除 yyaccp 用户
connect system/manager@oracle;
drop user yyaccp;
?
10. 使用 grant向用户授予不同的特权:以下通过system 用户向 yyaccp 用户授予了 创建会话、创建用户以及创建表的权限
Connect system/manager@oracle;
Grant create session, create user , create table to yyaccp;
?
常用的系统特权:
| Create session |
连接到数据库上 |
| Create sequence |
创建序列 |
| Create table |
创建表 |
| Create any table |
在任何模式中创建表 |
| Drop table |
删除表 |
| Drop any table |
删除任何模式中的表 |
| Create procedure |
创建存储过程 |
| Execute any procedure |
执行任何模式中的存储 过程 |
| Create user |
创建用户 |
| Drop user |
删除用户 |
| Create view |
创建视图 |
?
11.使用with admin option 选项。授权的用户可以把特权授予其他用户使用
以下命令 将execute any procedure 特权授予 yyaccp 用户,同时指定了
with admin option 选项。
Connect system/manager@oracle;
Grant execute any procedure to yyaccp with admin option;
?
12. 检查授予用户的权限(通过 user_sys_privs 表)检查某个用户具有哪些权限:
以下命令演示了 yyaccp 用户连接到数据库上,并对 user_sys_privs 进行查询
Connect yyaccp/accp@oracle;
Select * from user_sys_privs ;
?
?
14. 撤销系统特权。以下system撤销了 yyaccp用户的dba权限
Revoke dba from yyaccp;
?
15.当授权的用户向表空间创建表或向已有的表中插入数据时,仍然提示权限不足可以通过以下方式解决例如 :创建了 yyaccp 用户 但是yyaccp 用户在 yyaccp 表空间中建表时出现权限不足,执行以下命令:
connect system/manager;
alter user yyaccp quota unlimited on yyaccp;
?
使用以下命令删除表空间同时删除表空间对应的数据文件:
drop tablespace yyaccp including contents and datafiles;
对象特权:
16. 对象特权允许用户对数据库对象执行特定的操作,比如对表进行添加、修改、删除、查询等操作。
以下表格列出了常用的对象特权:
| 对象特权 |
允许执行的操作 |
| select |
执行查询操作 |
| Insert |
执行插入操作 |
| Update |
执行修改操作 |
| Delete |
执行删除操作 |
| execute |
执行存储过程 |
向用户授予对象特权:
17. 可以使用 grant 语句向用户授予 对象特权 ,下面这个例子以 yyaccp 用户的身份连接到数据库,并向 tuser 授予以下特权:对 tusertable 表的 select ,
Insert ,update 对象特权进行授权
Connect yyaccp/accp;
Grant select ,insert ,update on yyaccp.tusertable to tuser;
?
18. 以下命令对tusertable 表中的 name , address 列的 update 特权授予tuser 用户
Grant update(name,ddress) on yyaccp.tusertable to tuser;
?
19. 使用 grant 选项可以使授权的用户把这种特权再授予其他用户。下面命令对tusertable 表的 select 特权授予 tuser 用户,同时指定了 with grant option 选项
Grant select on yyaccp.tusertable to tuser with grant option
20. 检查已授予的对象特权(通过查询 user_tab_privs_made) 可以检查某个用户对哪些表向其他用户开放了哪些对象特权:
Select * from us