文章目录

  • ​​基本操作​​
  • ​​用户权限管理:​​
  • ​​权限传递:​​
  • ​​角色管理:​​
  • ​​数据导出:对于远程数据库​​
  • ​​查看表空间​​
  • ​​查看表空间路径​​
  • ​​查看被锁的对象​​

基本操作

connect sys/zxm as sysdba-- 用 sys用户登录
create user jsdx identified by jsdx 创建用户 jsdx 密码 jsdx
alter user username identified by pwd 用dba 用户登录 后重置用户密码
grant create session,create table,create sequence,create view,sysdba,create procedure,dba to sam
drop user username;删除用户 drop user username cascade 删除用户及其数据
grant sysdba to jsdx 对用户赋权限
select * from user_sys_privs; 查看用户系统权限
grant create session to zxm;授予会话权限
grant create table to zxm;授予见表
grant unlimited tablespace to zxm; 授予无限制权限使用表空间权限
revoke 权限 from 用户;撤销用户权限
grant update(pass) on mytab to zxm;授予用户对当前用户表的(某字段)的操作权限
grant all on mytab to zxm; 授予其他用户操作表的所有权限
revoke all on mytab from zxm;撤销所有操作权限
select * from user_tab_privs;查询其他用户对(当前用户表)的操作权限
select * from user_col_privs; 查询替他用户对(当前用户表字段)的操作权限

用户权限管理:

grant/revoke select /update/delete/insert on mytab to zxm; 对zxm 授予当前用户表的权限
分配用户 Sam 创建表,创建序列,创建存储过程和创建视图的权限

只有DBA 才能导入由其他DBA 导出的文件 问题
两句话搞定问题:
grant dba to testuser ;
如果还不行,再执行
alter user testuser default role DBA;
只有DBA 才能导入由其他DBA 导出的文件
alter user 用户名 quota unlimited on users; 赋予对表空间的操作
select userenv(‘language’) from dual 查看编码

权限传递:

grant create session to zxm with admin option; 把创建会话权限给zxm 并允许他授予其他用户
grant update on mytab to zxm with grant option;吧用户权限授予给zxm 并允许他授予别人

角色管理:

create role roleName; 创建角色
grant 权限 to roleName 将角色授予权限
grant rulename to userName将角色授予给用户;
select * from user_role_privs;用户查询拥有的角色
drop role rolename 删除角色;
当给角色受权限的时候拥有此角色的用户同时也增加了权限 撤销时也一样 角色删除时 用户的对应权限也消失
alter user username account unlock;为 username 用户解锁
select owner from all_objects where object_type = ‘TABLE’ and object_name = ‘RM_AREA_T’; 查看表属于哪个用户
select username from dba_users 查看用户名称
desc dba_users 查看 dba_users 表结构
alter table mytab add pass varchar(20); 修改表结构
select username , password form dba_users 查看用户名称密码(密码已加密)
select * from sys.dba_role_privs where granted_role=‘DBA’; 有dba权限的用户
用plsql 连接远程数据库: connect zxm/zxm@orcl(tnsnames.ora 中配置的 数据库名字)

数据导出:对于远程数据库

windows cmd 下 运行 tnsping +(tnsnames.ora 中配置的 数据库名字) orcl 查看是否能连接上数据库
windows 命令行 下 运行 exp/imp 导出导入数据库数据
exp userid=das_test/dwsoft file=./das_test.dmp log=./dmp.log owner=das_test
imp das_test/dwsoft@ fromuser=das_test touser=jsdx file=das_test.dmp log=./imp.log
select tableName form alltables;
查询字符集
select * from nls_database_parameters
oracle10g
上执行:
Exp ccense/ccense@orcl file=D:\2012123101.dmp
Exp miiuser/miiuser@YDP file=I:\test.dmp

oracle11g
上创建好表空间和用户后执行:
Imp monitor/monitor@MONITOR.WORLD file=D:\monitordata\monitor.dmp
Imp zxm/zxm@orcl file=G:\monitor.dmp
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
经由常规路径由 EXPORT:V09.02.00 创建的导出文件
警告: 这些对象由 MIIUSER 导出, 而不是当前用户
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
成功终止导入, 没有出现警告。
. 正在将 MIIUSER 的对象导入到 ZXM
C:\Users\Administrator>

exp userid=zxm/zxm@orcl tables=zem_s8kcfgdata,zem_s8kstatedata file=D:\ttt.dmp

exp userid=sapsr3db/Mt12014$@MT1
tables=ZEM_DOUBLECONFIRM,ZEM_DYNAMICAPR
file=D:\MT1_zem_data_150716.dmp

查看表空间

select tablespace_name,sum(bytes)/1024/1024 from dba_data_files
group by tablespace_name;
select tablespace_name,sum(bytes)/1024/1024 from dba_free_space
group by tablespace_name;
select a.tablespace_name,a.bytes/1024/1024 “Sum MB”,(a.bytes-b.bytes)/1024/1024 “used MB”,b.bytes/1024/1024 “free MB”,round(((a.bytes-b.bytes)/a.bytes)*100,2) “percent_used”
from
(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,
(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b
where a.tablespace_name=b.tablespace_name
order by ((a.bytes-b.bytes)/a.bytes) desc

查看表空间路径

select tablespace_name,file_id,bytes/1024/1024,file_name
   from dba_data_files order by file_id;
–1、查看表在那个表空间
select tablespace_name,table_name from user_talbes where table_name=‘test’;
–2、获取用户的默认表空间
select username, DEFAULT_TABLESPACE from dba_users where username=‘MXH’;
–3、查看表空间所有的文件
select * from dba_data_files where tablespace_name=‘USERS’;
–4、查看表空间使用情况:
SELECT tbs 表空间名,
sum(totalM) 总共大小M,
sum(usedM) 已使用空间M,
sum(remainedM) 剩余空间M,
sum(usedM)/sum(totalM)*100 已使用百分比,
sum(remainedM)/sum(totalM)*100 剩余百分比
FROM(
SELECT b.file_id ID,
b.tablespace_name tbs,
b.file_name name,
b.bytes/1024/1024 totalM,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 usedM,
sum(nvl(a.bytes,0)/1024/1024) remainedM,
sum(nvl(a.bytes,0)/(b.bytes)*100),
(100 - (sum(nvl(a.bytes,0))/(b.bytes)*100))
FROM dba_free_space a,dba_data_files b
WHERE a.file_id = b.file_id
GROUP BY b.tablespace_name,b.file_name,b.file_id,b.bytes
ORDER BY b.tablespace_name
)
GROUP BY tbs
–5、扩展表空间
alterdatabase datafile ‘D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF’ resize 50m;
–自动增长
alterdatabase datafile ‘D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF’ autoextend onnext 50m maxsize 500m;
–增加数据文件
alter tablespace USERS add datafile ‘d:\users02.dbf’ size 5m;

查看被锁的对象

select * from all_objects b where object_type in(‘PROCEDURE’,‘TABLE’)
and b.OBJECT_ID in ( select a.ID1 from vKaTeX parse error: Expected 'EOF', got '#' at position 58: …,b.SID,b.SERIAL#̲,b.LOGON_TIME f…locked_object a ,voracle基本操作_oraclesession se,v$process p
where se.PADDR=p.ADDR and se.SID in(‘11’,‘14’)
在操作系统上杀死进程
orakill spid thread
orakill 7196 thread