Oracle用户详细操作
迪丽瓦拉
2024-03-05 05:46:40
0

1、sqlplus 登入 dba 账号

sqlplus / as sysdba;
sqlplus dw/dw@127.0.0.1:1521/orcl

2、用户操作

2.1、创建用户
create user c##zhang identified by zhang;--12C以后
-------------------------------------------------
create user bqsj identified by bqsj --密码
default tablespace NNC_DATA01 --指定表空间
temporary tablespace TEMP --指定临时表空间
profile default
2.2、用户授权

权限大概分三种 (connect 连接, resource 数据,dba 管理员)

授予连接权限和数据权限的语句,完成这一步,我们就可以用客户端连接改用户了

grant connect to test1;--连接权限
grant resource to test1;--数据权限
grant dba to test1;--DBA权限
grant unlimited tablespace to test1;--全局表空间权限
-------------------------------------------------
grant connect, resource, dba to test1;
2.3、修改用户密码

将 test1 账号的 密码修改为 test2

alter user test1 identified by test2; 
2.4、设置密码不过期
alter profile default limit password_life_time unlimited;
2.5、修改用户对应的表空间
alter user test1 default tablespace ZHANGTEST01;
2.6、授予用户操作表空间的权限
alter user test1 quota unlimited on ZHANGTEST01;
2.7、删除用户
drop user test1;          -- 普通账号
drop user test1 cascade;  -- 带数据权限的

3、用户查询

1、关于用户的查询
select * from dba_users;       -- 查询数据库中拥有DBA权限的所有用户(需要 dba 权限)
select * from all_users;       -- 查询数据库下的所有用户(相对于上一条,查询结果字段比较少)
select * from user_users;      -- 查询当前用户的相关信息
select userenv ('language') from dual;  -- 查询字符集
2、关于用户下的表的查询
select * from user_tables;     -- 查询当前用户下的所有表
select * from user_sequences;  -- 查询当前用户下的所有序列
select t.name from user_source t where t.type = 'TRIGGER' group by t.name; -- 查询当前用户下所有触发器
3、查看用户或角色系统权限

直接赋值给用户或角色的系统权限

select * from dba_sys_privs;
select * from user_sys_privs;--查看当前用户所拥有的权限
4、查看角色

只能查看登陆用户拥有的角色所包含的权限

select * from role_sys_privs;
5、查看用户对象权限
select * from dba_tab_privs;   
select * from all_tab_privs;   
select * from user_tab_privs;
6、查看所有角色
select * from dba_roles;
7、查看用户或角色所拥有的角色
select * from dba_role_privs;   
select * from user_role_privs;
8、查看哪些用户有sysdba或sysoper系统权限

查询时需要相应权限

select * from V$PWFILE_USERS;
9、SqlPlus中查看一个用户所拥有权限
select * from dba_sys_privs where grantee='username';
10、Oracle删除指定用户所有表的方法
select 'Drop table '||table_name||';' from all_tables
where owner='要删除的用户名(注意要大写)';
11、获取当前用户下所有的表
select table_name from user_tables;
12、删除某用户下所有的表数据
select 'truncate table  ' || table_name from user_tables;

相关内容