在操作oracle数据库时,经常会用到一些命令,总是记不住,写篇文章来当做是个笔记吧。(不断更新中)
1. 编码格式查询
SELECT USERENV(‘LANGUAGE’) FROM DUAL
2. EXP命令
2.1 DB全体EXPORT
EXP USER001/PSWD@INSTANCE FILE=C:\FULLEXP.DMP FULL=Y
2.2 从SHEMA中EXPORT
EXP USER001/PSWD@INSTANCE FILE=C:\USEREXP.DMP OWNER=USER001
3. IMP命令
IMP USER001/PSWD@INSTANCE FILE=C:\FULLEXP.DMP
4. 获取实例名、HOST名、版本号、启动时间
SELECT
INSTANCE_NAME, HOST_NAME, VERSION,TO_CHAR(STARTUP_TIME, 'YYYY/MM/DD HH24:MI:SS') AS STARTUP_TIME
FROM
V$INSTANCE
5. 创建用户
语法:
CREATE USER 用户名
IDENTIFIED BY 密码
[DEFAULT TABLESPACE 默认表空间名] ----分配的用户表空间。如果省略的话,则默认是SYSTEM表空间
[TEMPORARY TABLESPACE 临时表空间名] ----用户临时Segment。如果省略的话,则默认是SYSTEM表空间
[QUOTA {size(K/M) | UNLIMITED} ON 表空间] ----指定表空间的大小。如果使用关键字UNLIMITED,则不限制其大小。
例 :
create user testuser
identified by 12345
default tablespace tbsp01
temporary tablespace tbtmp
quota 20m on tbsp01
SELECT * FROM user_users;
或
SELECT * FROM dba_users;
6. 用户授权
语法:
GRANT 权限名或角色名 TO 用户名;
例 :
GRANT CREATE SESSION, accts_pay TO jward;
7. 删除用户
语法:
DROP USER <用户名> [CASCADE]; ---- 如果指定了关键字CASCADE,那么SCHEMA中关于用户的对象一并删除
例 :
DROP USER testuser CASCADE;
8. ORA-28001: the password has expired
对策:
查询密码的有效期设置,LIMIT字段是密码有效天数。
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'
去除180天的密码生存周期的限制
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED