Oracle数据库查询时如何对满屏的sql命令做清屏处理呢?很多朋友喜欢使用SQL*Plus,SQL*Plus工具怎么清屏呢?
oracle清屏命令汇集:
以上就是3种最好用的oracle清屏命令。
{[/][@] |/}[AS{SYSDBA | SYSOPER}]
- username/password:指定数据库账户用户名,口令
- connect_identifier:数据库连接的连接标识符(服务器名)。有连接标识符,SQL*Plus 将连接到默认数据库。
- SYSDAB、SYSOPER 选项是数据库管理权限。
- SYSDBA:数据库管理员的权限
- SYSOPER:数据库操作员的权限
alter user username account unlock
例子:
alter user scott account unlock
conn scott/tiger
1、scott@orcl
密码
2、scott/密码@orcl
系统表空间
系统表空间包括SYSTEM和SYSAUX表空间,其它表空间是非系统表空间。系统表空间在所有数据库中都是必须的,是在建库的时候自动创建的,一般存放数据字典表及其数据。)
永久表空间
永久表空间用于保存永久性的数据,如系统数据,应用系统数据。每个用户都会分配一个永久表空间,以便保存其schema对象的数据。除了undo表空间,相对于临时表空间( temporary)来说,其它表空间就是永久表空间(permanent),如系统表空间。)
临时表空间
执行具有排序(order by)、分组汇总(group by)、索引(create index)等功能的SQL语句时,会产生大量临时数据。服务器进程首先将临时数据存放到PGA区的排序区中,当排序区不够用时,服务器进程就会在临时表空间中建立临时段,并将这些临时数据存放到临时段中。
如果在创建用户时没有为用户指定一个临时表空间,那么就会使用SYSTEM表空间来创建临时段,存放临时数据。
这样做的结果是:
如果在数据库运行过程中,经常有大量的并发程序,为了避免在SYSTEM表空间中存储临时数据,DBA应该在数据库中创建一个专门用来存储临时数据的临时表空间,对应的文件称为临时文件。临时表空间可以被所有用户共享使用,如TEMP表空间。
用户的临时表空间是创建这个用户时指定的。数据库默认临时表空间是在创建(create database)数据库时,使用default temporary table space子句指定。)
UNDO表空间
运行在自动undo管理(automatic undo management)模式的数据库,用undo表空间来存储、管理undo数据。Oracle使用撤销数据来隐式或显式地回退事务、提供数据的读一致性,帮助数据库从逻辑错误中恢复、实现闪回查询(Flashback Query)等。
在Oracle中可以创建多个undo表空间,但同一时刻只允许激活一个撤销表空间。在初始化参数文件中用UNDO_TABLESPACE指出要激活的撤销表空间。不使用的撤销表空间可以删除。撤销表空间的组织与管理是由Oracle内部自动完成的。当回退段不足时,一个事务可以使用多个回退段,不会终止事务的运行。DBA只需要知道撤销表空间是否有足够的空间,而不必为每个事务设置回退段。)
create [TEMPORMARY] TABLESPACE
tablespace_name
TEMPFILE | DATAFILE 'xx.dbf' SIZE XX
select file_name from dba_data_files where tablespace_name = '永久表空间名字';(永久表空间的位置)
select file_name from dba_temp_files where tablespace_name = '临时表空间的名字';(临时表空间的位置)
create user
identified by
default tablespace
temporary tablespace
完整的创建用户(细节)
例子:sql>create user lixiaojun
identified by HIS
default tablespace users
temporary tablespace temp
quota 3m on users;
刚刚创建的用户是没有任何权限的,因此,需要dba 给该用户授权。
sql>grant connect to lixiaojun
如果你希望该用户成为dba
sql>grant dba lixiaojun
举例
create user yan identified by test
default tablespace test1_tablespace
temporary tablespace temptest1_tablespace
select username from dba_users
概述:profile 是口令限制,资源限制的命令集合,当建立数据时,oracle 会自动建立名称为default 的 profile,当建立用户没有指定profile 选项,那oracle 就会将default 分配给用户
概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba 的身份去执行
例子:
指定scott 这个用户最多只能尝试3次登陆,锁定时间为2天
语法格式:
sql->create profile profile 文件名 limit failed_login_attempts 3(次数) password_lock_time 2(锁定的天数);
sql->alter user tea profile lock_account;
创建profile 文件
sql->conn system/HIS@orcl;
sql->create profile userprofile1 failed_login_attempts 3 password_lock_time 2;
sql->alter user scoot profile userpfrofile1;
sql->conn scott/xxx@orcl(连续输错3次密码,输第4次时发现账户被锁住);
解锁:
sql->alter user scoot account unlock;
(2)给账户(用户)解锁
sql->alter user tea(用户名) account unlock;
(3)终止口令(用户 profile 口令管理(限制口令的使用期限))
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作。
语法:
sql->create profile myprofile(文件名) limit password_life_time 10 password_grace_time 2;
sql->alter user tea profile myprofile;
例子:
给前面创建的用户tea,创建一个profile文件,要求该用户每隔10天要修改自家的登陆密码,宽限期为2天。
sql->crate profile userprofile2 password_life_time 10 password_grace_time 2;
sql->alter user scott profile userprofile2;
注意:此时修改oracle 服务器的时间,往后延迟10天与12天、13天
#查看使用scott 登录的提示信息
sql->conn scott/HIS@orcl;
删除 profile
drop profile profile(文件名)[cascade]
1、connect(连接角色)
拥有connect 权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构
2、resource(资源角色)
拥有resource 权限的用户只可以创建实体,不可以创建数据库结构
3、DBA(数据库管理员角色)
拥有全部权限,是系统最高权限,只有DBA才可以创建数据库结构
语法格式:
create role 角色名
例子:
reate role manager
语法格式:
grant 权限 to 角色
例子:
grant create table,create view to manager
语法格式:
grant 角色 to 用户
例子:
grant manager to user01,user02
语法格式:
drop role 角色
例子:
drop role manager
语法格式:
revoke 角色 from 用户
例子:
revoke manager from user02
查询Oracle 所有系统权限:
select *from system_privilege_map
常用的系统权限如:
1、使用 system 创建 software 用户,密码设置为HIS
create user software identified by HIS
2、要想让 software 登录(连接)数据库,需要给其 connect、session 权限(角色)
grant connect to software;
grant resource to software;
3、使用scott 用户登录系统
sql->conn scott/HIS@orcl
sql->grant select on emp to software;
或
sql->conn system/HIS@orcl
sql->grant select on scott.emp to software;
4、使用 software 登录
sql->conn software/HIS@orcl
sql—>select * from scott.emp;
1、scott用户能够查看emp表,但是software 用户不能
问题:scott 用户与software 位于同一个数据库实例(orcl)里,为什么不能查看呢?
1、当用户创建好后,如果该用户创建了一个数据对象(表等),此时dbms 就会创建一个对应的方案与该用户对应,并且该方案的名称和用户名称一致。因此,得出结论system 与 scott 都拥有自己的方案
2、Oracle 实例里,能不能再同一个实例里不同的用户创建同样名称的数据对象(表)呢?
答案是可以的
3、方案(schema),当某用户创建一个数据对象时,此时 dbms 就会创建一个对应的方案与该用户对应,并且该方案的名称和用户名名称一致。因此,得出结论 system 与 scott 都拥有自己的方案
4、如果想查看某一用户的数据对象,可以通过pl/sql developer 查看;
grant privilege [,privilege…] to user [,user | role,public…]
举例:
grant create table,create sequence to manager;
grant manager to user01,user02;
revoke{privilege | role} from {user_name | role_name | public}
- 举例:
revoke manager from user01;
revoke create table,create sequence from manager;
查询Oracle所有对象权限
select * form table_privilege_map
常用的对象权限如:
grant object_priv | all[(columns)] on object to {user | role | public}
- 举例:
- grant select,update,insert on scott.emp to manager2;
- grant manager2 to user03;
- grant all on scott.emp to user04;
revoke {privilege [,privilege...] | all} on object from {user[,user...] |role | public}
- 举例:
- revoke all on scott.emp from user04;
相关的数据字典:
例子:
select tablespace_name from dba_tablespaces;
select tablespace_name from user_tablespaces;
数据字典:
例:查看system 用户的表空间信息
select default_tablespace,temporary_tablespace from dba_users where username = 'system';
语法格式:
alter user username default | temporary tablespace tablespace_name;
例子:
alter user user01 default tablespace Test1_tablespace temporary tablespace TempTest1_tablespace;
设置联机或脱机状态
alter teblespace tablespace_name online | offline
特别说明:
查看表空间的状态:
select status from dba_tablespace where tablespace_name=’表空间名字’;
设置只读或可读写状态
alter tablespace tablespace_name read only | read write
语法格式:
alter tablespace tablespace_name add datafile ‘filename.dbf’ size xx;
语法格式:
alter tablespace tablespace_name drop datafile 'filename.dbf'
语法格式
drop tablespace tablespace_name [including contents]
下载链接地址
https://www.oracle.com/downloads/index.html
链接上需要用的数据库用户
确定这是连接数据库的SID错误,
1.知道你的SID名:可以再注册表中查找,也可以通过借助Oracle的sqlplus工具并以管理员方式连接敲命令查看:select instance_name from v$instance;必须是管理员身份,否则“视图不存在”。我的操作如下:
2.在Oracle SQL Developer连接工具上修改你的数据库SID名,我的如下(把”xe”修改成”orcl”):
3.勾选“保存命令”,“角色”选择数据库管理员。
4.点击“保存”和“测试”,并连接,剩下的就是连接成功了。
特别提示:
如若再不行!那就得修改监听文件了
oracle 的Developer连接不上报错:listener does not currently know of SID given in connect descriptor
在 D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN中找到listener.ora文件,修改后的文件在“下面”中,复制并覆盖就ok了。
Generated by Oracle configuration tools.
把listener.ora中的配置改成如下即可:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = D:\app\Administrator
如按照以上操作还是连接不上,可能是你的SID错误!