sql*plus的常用命令
连接命令
1.conn[ect]
conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连
接时必须带上as sysdba或是as sysoper
2.disc[onnect]
说明: 该命令用来断开与当前数据库的连接
3.psssw[ord]
说明: 该命令用于修改用户的密码如果要想修改其它用户的密码需要用sys/system登录。
4.show user
说明: 显示当前用户名
5.exit
说明: 该命令会断开与数据库的连接同时会退出sql*plus
文件操作命令
1.start 和@
说明: 运行sql脚本
案例: sql>@ d:\a.sql或是sql>start d:\a.sql
2.edit
说明: 该命令可以编辑指定的sql脚本
案例: sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开
3.spool
说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b.sql 并输入 sql>spool off
ν 交互式命令
1.&
说明可以替代变量而该变量在执行时需要用户输入。
select * from emp where job='&job'
2.edit
说明该命令可以编辑指定的sql脚本
案例SQL>edit d:\a.sql
3.spool
说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b.sql 并输入 sql>spool off
显示和设置环境变量
可以用来控制输出的各种格式set show如果希望永久的保存相关的设
置可以去修改glogin.sql脚本
1.linesize
设置显示行的宽度默认是80个字符
show linesize
set linesize 90
2.pagesize
设置每页显示的行数目默认是14
用法和linesize一样
至于其它环境参数的使用也是大同小异
3.oracle
用户管理
创建用户
在oracle中要创建一个新的用户使用create user语句一般是具有
dba(数据库管理员)的权限才能使用。
create user 用户名 identified by 密码; (oracle有个毛病密码必须以字
母开头如果以字母开头它不会创建用户)
给用户修改密码
如果给自己修改密码可以直接使用
password 用户名
如果给别人修改密码则需要具有dba的权限或是拥有alter user的系统权限
SQL> alter user 用户名 identified by 新密码
删除用户
一般以dba的身份去删除某个用户如果用其它用户去删除用户则需要具
有drop user的权限。
比如 drop user 用户名 【cascade】
在删除用户时注意 如果要删除的用户已经创建了表那么就需要在删除的时候带一个参数cascade;
用户管理的综合案例
创建的新用户是没有任何权限的甚至连登陆的数据库的权限都没有需要为其指定相应的权限。给一个用户赋权限使用命令grant回收权限使用命令
revoke。
案例:
SQL> conn xiaoming/m12;
ERROR:
ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied
警告: 您不再连接到 ORACLE。
SQL> show user;
USER 为 ""
SQL> conn system/p;
已连接。
SQL> grant connect to xiaoming;
授权成功。
SQL> conn xiaoming/m12;
已连接。
SQL>
注意grant connect to xiaoming;在这里准确的讲connect不是权限而
是角色。。
* 希望xiaoming用户可以去查询emp表
* 希望xiaoming用户可以去查询scott的emp表
grant select on emp to xiaoming
* 希望xiaoming用户可以去修改scott的emp表
grant update on emp to xiaoming
* 希望xiaoming用户可以去修改/删除查询添加scott的emp表
grant all on emp to xiaoming
* scott希望收回xiaoming对emp表的查询权限
revoke select on emp from xiaoming
//对权限的维护。
* 希望xiaoming用户可以去查询scott的emp表/还希望xiaoming可以把这个
权限继续给别人。
--如果是对象权限就加入 with grant option
grant select on emp to xiaoming with grant option
操作过程
SQL> conn scott/tiger;
已连接。
SQL> grant select on scott.emp to xiaoming with grant option;
授权成功。
SQL> conn system/p;
已连接。
SQL> create user xiaohong identified by m123;
用户已创建。
SQL> grant connect to xiaohong;
授权成功。
SQL> conn xiaoming/m12;
已连接。
SQL> grant select on scott.emp to xiaohong;
授权成功。
--如果是系统权限。
system给xiaoming权限时
grant connect to xiaoming with admin option
问题如果scott把xiaoming对emp表的查询权限回收那么xiaohong会怎样
答案被回收。
下面是我的操作过程
SQL> conn scott/tiger;
已连接。
SQL> revoke select on emp from xiaoming;
撤销成功。
SQL> conn xiaohong/m123; 已连接。
SQL> select * from scott.emp;
select * from scott.emp
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
小红受到诛连了。。