Oracle命令行操作,Oracle管理用户以及角色权限
说明:
- 1.SQL语言大小写不敏感。
- 2.SQL可以写在一行或者多行(使用时最后要以分号结尾,表示一条SQL语句)。
- 3.关键字不能被缩写也不能分行。
如无特别说明,[]
中括号内容表示可写可不写
1.登录注销
描述 | 命令 |
---|---|
登录普通用户 | sqlplus 或sqlplus 用户名 或sqlplus 用户名/密码 |
登录管理员 | sqlplus / as sysdba |
退出 | exit |
说明:用户名不区分大小写,密码区分。
2.管理用户与角色权限
描述 | 命令 |
---|---|
创建用户 | create user 用户名 identified by 密码; |
解锁用户 | alter user 用户名 account unlock; |
锁定用户 | alter user 用户名 account lock; |
修改密码 | alter user 用户名 identified by 新密码; |
修改管理员密码 | alter user sys identified by 新密码; |
给用户授权 | grant 权限 to 用户名; |
收回用户的权限 | revoke 权限 from 用户名; |
删除用户 | drop user 用户名; |
创建角色 | create role 角色名; |
删除角色 | drop role 角色名; |
把权限授予给角色 | grant create session to 角色名; |
角色继承 | grant create table,角色名1 to 角色名2; |
给用户分配空间配额 | alter user 用户名 quota unlimited on users; |
quota容量的意思;unlimited 无限制;on users在users这个表空间上没有限制。
查看包含当前用户可以使用的权限信息 (Session就是当前用户的会话)
SELECT * FROM session_privs;
3.角色与权限
角色的优点
- 易于权限管理
- 动态权限管理
- 选择有效的权限
用户权限有两种:
System(系统权限):允许用户执行对于数据库的特定行为,例如:创建表、创建用户等
Object(对象权限):允许用户访问和操作一个特定的对象,例如:对其他方案下的表的查询
4.预定义角色和权限
Oracle实现预置好了一些角色:
角色 | 权限 |
---|---|
CONNECT | CREATE SESSION |
RESOURCE | CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER, CREATE TYPE |
SCHEDULER_ADMIN | CREATE ANY JOB, CREATE EXTERNAL JOB, CREATE JOB, EXECUTE ANY CLASS, EXECUTE ANY PROGRAM, MANAGE SCHEDULER |
DBA | Most system privileges, several other roles. Do not grant to nonadministrators. |
SELECT_CATALOG_ROLE | No system privileges, but HS_ADMIN_ROLE and over 1,700 object privileges on the data dictionary |
对于普通用户,一般要有CONNECT与RESOURCE。
例:
create user mytest identified by OraPassword;
grant connect, resource to mytest;
一般就是这样用的,创建完用户后就会指定权限。
在RESOURCE角色中就含有空间配额。
5.查看与设置参数
Linux命令行中如果语句输错,按退格键BackSpace会解析为^H
,此时可按住Ctrl+BackSpace
进行回退操作。
SQL> show pagesizes^H
查看参数目前值:show 选项
设置参数的值:set 选项 新值
,通过这种方式设置的参数值只对本次登录有效。
永久保存设置的参数:[oracle@solang ~]$ vi $ORACLE_HOME/sqlplus/admin/glogin.sql
文件目录/usr/local/products/oracle12c/sqlplus/admin/glogin.sql
描述 | 命令 |
---|---|
显示当前用户 | show user |
切换用户 | conn[ect] 或conn[ect] 用户名 或conn[ect] 用户名/密码 |
显示参数目前值 | 显示行宽(默认80):show linesize 显示一页大小(默认14):show pagesize |
设置参数:行宽 | set 选项 新值 , set linesize 150 |
设置参数:一页大小 | set pagesize 20 |
永久保存设置的参数 | 修改文件vi $ORACLE_HOME/sqlplus/admin/glogin.sql |
执行上一条sql语句 | / |
查看表结构 | desc 表名 |
修改上一条sql语句 | ed[it] |
单行注释 | -- 注释 |
多行注释 | /* 注释 */ |
清屏 | Windows:host cls Linux:host clear |
设置某列的宽度 | col[umn] 列名 for[mat] 格式 |
设置某列的宽度,例:
column 列名 format a15 -- 此列名数据类型为字符串
column 列名 format 9999 -- 此列名数据类型为数字
-- 对于字符串类型的列:a15,表示15个字符的宽度。
-- 对于数字类型的列:9表示一位,有几个,就是多宽。
6.终止正在执行的命令
中止一个正在执行的命令是Ctrl + /
,Ctrl + C
如果直接按Ctrl + C
会退出SQLPLUS程序。
7.启动和关闭
必须是sys
用户,命令为:
启动:startup open
,关闭:shutdown immediate
8.加载脚本文件
命令:@语句sql路径
[oracle@solang ~]$ vi select.sql
select 1 from dual;
SQL> @/home/oracle/select.sql
1
----------
1
SQL>