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.使用 public 可以将一种特权授予所有用户 ,以下命令 以system 用户的身份 连接到数据库上 ,并将execute any procedure 特权授予 public Connect system/manager@oracle; Grant execute any procedure to public; 13. 检查授予用户的权限(通过 user_sys_privs 表)检查某个用户具有哪些权限: 以下命令演示了 yyaccp 用户连接到数据库上,并对 user_sys_privs 进行查询
Select * from user_sys_privs ; 14. 撤销系统特权。以下system撤销了 yyaccp用户的dba权限 Revoke dba from yyaccp; 15.当用户创建表或向已有的表中插入数据时,提示Ora-01536:表空间不足 可以通过以下方式解决: (1) alter user USERNAME quota 100M on TABLESPACENAME; (2) alter user USERNAME quota unlimited on TABLESPACENAME; (3) grant unlimited tablespace to USERNAME; 例如 :创建了 yyaccp 用户 但是yyaccp 用户在 yyaccp 表空间中建表时出现Ora-01536状态码,执行以下命令: Connect system/manager; alter user yyaccp quota unlimited on yyaccp; 角色: 角色就是一组特权,它可以分配给一个用户或者其他角色. 以下命令创建一个管理 employees2 表的角色 create role employyes2_manger 给角色赋予权限: grant select,update,insert,delete on yyaccp.employees2 to employyes2_manger 对象特权: 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 选项
20. 检查已授予的对象特权(通过查询 user_tab_privs_made) 可以检查某个用户对哪些表向其他用户开放了哪些对象特权: Select * from user_tab_privs_made user_tab_privs_made 部分列 列名称 说明 Grantee 该特权授予的用户 Table_name 所授予的特权所操作的对象(例如表)名 Grantor 授权者 Privilege 对该对象授予的特权 grantable 特权所授予的用户是否可以将这种特权再授予其他用户,该值等于 yes 或 no hierarchy 特权是否构成层次关系。该值等于 yes 或 no User_col_privs_made 可以检查某个用户对哪些列对象开放了哪些特权。 Select * from user_col_privs_made; from user_col_privs_made 部分列 列名称 列说明 Grantee 该特权授予的用户 Table_name 所授予特权所操作的对象名 Column_name 所授予特权所操作的对象名 Grantor 授权者 Privilege 对该对象授予的特权 grantable 特权授予的用户是否可以将这种权限再授予其他用户,该值等于 yes 或 no 21.使用同名对象,前面我们所有的授权后,如果要访问一个表名称要通过模式名称后面跟上一个表名。例如:yyaccp.tusertable。 以下命令通过创建同名对象(synonym)之后就可以不再输入模式名了。同名对象使用 create synonym 语句创建。以下命令用 yyaccp 用户登陆后,将 create synonym 特权给 tuser用户: Connect yyaccp/accp; Grant create synonym to tuser; 然后以tuser 用户的身份连接到数据库上,并执行一条 create synonym 语句,为 yyaccp.tusertable 创建一个同名的对象 Connect tuser/tuser; Create synonym tusertable for yyaccp.tusertable; 22.使用公共同名对象: 可以为表创建公共同名对象(public synonym)。再创建公共同名对象之后,所用的用户都可以看到这个同名对象,下面四条语句完成公共同名对象
Connect system/manager; Grant create public synonym to yyaccp; Connect yyaccp/accp; Create public synonym sttable for yyaccp.sttable; 如果以tuser 用户身份连接到数据库上就可以通过公共对象名称 sttable 对 yyaccp.sttable 进行检索: Connect tuser/tuser; Select * from sttable; 23.撤销用户对象的特权: 使用 revoke 语句撤销某个用户的对象特权。以下命令以 yyaccp 用户的身份连接到数据库上,并撤销 tuser 对sttable 表的 insert 特权 Connect yyaccp/accp; Revoke insert on sttable from tuser |
|