[sql]代码库
第二章 用户管理
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;