第二章 用户管理 |
2.1 创建用户 |
注:创建用户只能在管理员下完成 |
CREATE USER 用户名 IDENTIFIED BY 密码。 |
|- CREATE USER demo IDENTIFIED BY 123456; |
2.2 用户分类 |
|-管理员和普通用户 |
|-管理员 |
|-超级管理员:sys/bluedot |
|-管理员:system/bluedot |
|-普通用户:scott/tiger |
hr/hr |
| --常见角色:sysdba、sysoper |
2.3 用户登录 |
2.3.1 在命令行窗口登录[c/s] |
步骤: |
运行 sqlplus /nolog |
conn demo/123456 |
conn / as sysdba == conn sys/bluedot as sysdba |
2.3.2 另外的一种登录方式【B/S】 |
输入网址 ----https://localhost:1158/em |
这个可以忽略,点击”仍然继续“ |
输入用户名密码进入主界面 |
‘ |
2.4 修改用户密码 |
注:修改密码必须要在级别高的用户下进行修改 |
ALTER USER 用户名 IDENTIFIED BY 密码; |
conn sys/bluedot as sysdba |
ALTER USER demo IDENTIFIED BY 654321; |
2.5 查询用户 |
2.5.1查看用户信息 |
1、 SELECT * FROM DBA_USERS; --------查看所有用户的详细信息 |
2、 SELECT * FROM ALL_USERS; -------查看所有用户简要信息 |
3、 SELECT * FROM USER_USERS; ------------查看当前用户的所用信息 |
2.5.2 查看用户或角色系统权限(直接赋值给用户或角色的系统权限) |
SELECT * FROM DBA_SYS_PRIVS; ----------全部 |
SELECT * FROM USER_SYS_PRIVS; ---------当前用户 |
2.5.3 查看角色(登录用户拥有的角色)所包含的的权限 |
SELECT * FROM ROLE_SYS_PRIVS; |
2.5.4 查看用户对象权限 |
SELECT * FROM DBA_TAB_PRIVS; |
SELECT * FROM ALL_TAB_PRIVS; |
SELECT * FROM USER_TAB_PRIVS; |
2.5.5 查看所有角色 |
SELECT * FROM DBA_ROLES; |
SELECT * FROM DBA_ROLE_PRIVS; |
SELECT * FROM USER_ROLE_PRIVS; |
|
2.5.6 查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限) |
SELECT * FROM V$PWFILE_USERS; |
|
2.5.7 查看Oracle提供的系统权限 |
SELECT name FROM SYS.SYSTEM_PRIVSILEGE_MAP; |
2.6 密码失效 |
提示用户第一次连接的时候需要修改密码,让用户的密码到期 |
|- ALTER USER 用户名 PASSWORD expire ; |
2.7 授权 |
GRANT 权限/角色 TO 用户 |
给 demo 用户以创建 session 的权限: GRANT create session TO demo; |
角色: -------------角色就是一堆权限的集合 |
Create role myrole; |
Grant create table to myrole; |
Drop role myrole; 删除角色 |
1. CONNECT , RESOURCE, DBA |
这些预定义角色主要是为了向后兼容。其主要是用于数据库管理。oracle建议用户自己设计数据库管理和安全的权限规划,而不要简单的使用这些预定角色。将来的版本中这些角色可能不会作为预定义角色。 |
2.DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE 这些角色主要用于访问数据字典视图和包。 |
3.EXP_FULL_DATABASE, IMP_FULL_DATABASE 这两个角色用于数据导入导出工具的使用。 |
GRANT 权限( select 、 update 、 insert 、 delete ) ON schema . table TO 用户 |
|- GRANT select ON scott.emp TO test ; |
|- Grant all on scott.emp to test; --将表相关的所有权限付给 test |
|- Grant update (ename) on emp to test; 可以控制到列(还有 insert ) |
2.8 收权 |
REVOKE 权限/角色 ON schema . table FROM 用户 |
|- REVOKE select ON scott.emp FROM test ; |
2.9 锁住一个用户 |
ALTER USER 用户名 ACCOUNT LOCK|UNLOCK |
|- ALTER USER test ACCOUNT LOCK ; |
|- ALTER USER test ACCOUNT UNLOCK ; |
2.10 删除用户 |
|- DROP USER 用户名; |
|- Drop user demo; |
如果该用户下面已经存在表等一些数据库对象。则必须用级联删除 |
|- DROP USER 用户名 CASCADE ; |
|- Drop user demo cascade ; |
备注:帮助 |
help index |
help conn --------显示具体的 |
eidt ---------------进入编辑文档 |
select con_id,dbid, NAME ,OPEN_MODE from v$pdbs; |
alter PLUGGABLE database pdborcl open ; |
alter session set container=pdborcl; |
select sys_context( 'userenv' , 'con_name' ) from dual; |