oracle学习笔记

a 查看用户、权限、角色的适用命令

1.查看所有用户:

select * from dba_users;

select * from all_users;

select * from user_users;

2.查看用户系统权限:

select * from dba_sys_privs;

select * from session_privs;

select * from user_sys_privs;

3.查看用户对象权限:

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

4.查看所有角色:

select * from dba_roles;

5.查看用户所拥有的角色:

select * from dba_role_privs;

select * from user_role_privs;

b 与权限,角色相关的视图大概有下面这些:

DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限

USER_SYS_PRIVS: 查询当前用户所拥有的系统权限

SESSION_PRIVS: 查询当前用户所拥有的全部权限

ROLE_SYS_PRIVS: 查询某个角色所拥有的系统权限 注意: 要以 SYS 用户登陆查询这个视图,否则返回空.

ROLE_ROLE_PRIVS: 当前角色被赋予的角色

SESSION_ROLES: 当前用户被激活的角色

USER_ROLE_PRIVS: 当前用户被授予的角色

 

关于创建视图权限不足时,可以在dos下用sqlplus /@orcl as sysdba登录到Oracle,再给所需要的用户赋予权限:grant create view to scott;再用pl/sql以scott登录时就可以创建视图了。

 

关于scott用户的解锁命令:alter user scott account unlock

1.查看所有用户:

  select * from dba_users;

  select * from all_users;

  select * from user_users; 

2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):

  select * from dba_sys_privs;

  select * from user_sys_privs; 

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

sql>select * from role_sys_privs; 

4.查看用户对象权限:

  select * from dba_tab_privs;

  select * from all_tab_privs;

  select * from user_tab_privs; 

5.查看所有角色:

  select * from dba_roles; 

6.查看用户或角色所拥有的角色:

  select * from dba_role_privs;

  select * from user_role_privs; 

7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)

select * from V$PWFILE_USERS 

比如我要查看用户 wzsb的拥有的权限:

SQL> select * from dba_sys_privs where grantee='WZSB';

GRANTEE                        PRIVILEGE                                ADMIN_OPTION

------------------------------ ---------------------------------------- ------------
WZSB                           CREATE TRIGGER                           NO

WZSB                           UNLIMITED TABLESPACE                     NO 

比如我要查看用户 wzsb的拥有的角色:

SQL> select * from dba_role_privs where grantee='WZSB'; 

GRANTEE   GRANTED_ROLE   ADMIN_OPTION  DEFAULT_ROLE

------------------------------ ------------------------------ ------------ ------------

WZSB                           DBA                         NO              YES 

查看一个用户所有的权限及角色

select privilege from dba_sys_privs where grantee='WZSB'

union

select privilege from dba_sys_privs where grantee in

(select granted_role from dba_role_privs where grantee='WZSB' );

Oracle系统默认的几个用户:
sys --------本地管理用户,具有最高数据库管理权限
system------网络管理用户,权限次于sys
scott-------普通用户,默认是锁住的(不可用)
默认情况下:
scott 密码是 tiger      sys 密码是 change_on_install 
system 密码是 manager   sysman 密码是 oem_temp

启动监听器服务:lsnrctl start
启动实例服务:oradmi -starup -sid orcl
显示当前用户:show user;
登录用户:sqlplus / as sysdba (sys网络管理员用户登录)
sqlplus username/password (普通用户)

1.创建用户

①打开cmd,连接上oracle数据库:sqlplus system/123456@orcl
②创建用户test:create user zhangsan identified by zhangsan; #注意后面带上分号
③为用户test赋予权限:grant create session to test; #注意后面带上分号

2.修改用户密码:

alter user lisi identified by <修改的密码>;

3.用户断开数据库连接:disconn;
当前用户重新连接:conn username/password;
删除用户:drop user username;
设置显示宽度:set linesize 400;

4.系统权限管理:
授予会话权限:grant create session to zhangsan;
授予建表权限:grant create table to zhangsan;
授予无限制使用表空间的权限:grant unlimited tablespace to zhangsan;
授予权限:grant 权限 to 用户名;   
撤销权限:revoke 权限 from 用户名;
    查询用户的系统权限:select * from user_sys_privs;
5.用户权限管理:
grant select on <表名> to lisi;   
grant update on <表名> to lisi;
grant delete on <表名> to lisi;
grant insert on <表名> to lisi;
revoke select on <表名> from lisi;
授予其他用户对当前用户表中的【某个字段】的操作权限:
grant update(pass) on <表名> to lisi;
授予其他用户操作表的所有权限:
grant all on <表名> to lisi;
撤销其他用户操作表的所有权限:
revoke all on <表名> from lisi;
    查询其他用户对【当前用户表】的操作权限:
select * from user_tab_privs;
    查询其他用户对【当前用户表字段】的操作权限:
select * from user_col_privs;
6.权限传递:
系统权限:grant create session to zhangsan with admin option;
(表示把系统权限授予给zhangsan,并允许其授予给其他用户)
用户权限:grant update on <表名> to lisi with grant option;
(表示把用户权限授予给lisi,并允许其授予给其他用户)
7.角色管理:
创建角色:create role roleName;
给角色授予权限:grant 权限 to roleName;
将角色授予给用户:grant roleName to userName;
用户查询拥有的角色:select * from user_role_privs;
删除角色:drop role roleName;
当给角色授予权限的时候,拥有此角色的用户也同时增加了权限;
当撤销角色权限的时候,拥有此角色的用户的对应权限也被撤销;
当角色被删除,拥有此角色的用户将丧失之前角色所有的所有权限。
8.修改表结构:alter table <表名> add pass varchar(20);
9.查看当前用户信息:

1、查看当前用户拥有的角色权限信息:

select * from role_sys_privs;

2、查看当前用户的详细信息:

select * from user_users;

3、查看当前用户的角色信息:

select * from user_role_privs;

10.查看数据库时间
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
posted @ 2021-11-17 05:53  myrj  阅读(52)  评论(0)    收藏  举报