用户:
安装Oracle时创建了预定义用户,参考:
Managing Security for Oracle Database Users
其中sys、system是常用的,权限最大的用户,它们都有DBA角色。
Oracle是没有schema概念的,用户名即schema。
sys用户schema下存储数据库核心数据字典。
system用户schema下存储其它系统数据字典。
角色:
角色是一组权限。
安装Oracle时创建了预定义用户角色,参考:
Configuring Privilege and Role Authorization
其中DBA是常用的权限最大的角色。
还有很特殊的角色PUBLIC,表示所有用户,常用于赋权,参考:
Configuring Privilege and Role Authorization
权限:
权限有许多种,参考:
Configuring Privilege and Role Authorization
其中SYSDBA和SYSOPER是常用管理员权限,
还有一个很特殊的权限ANY,表示任何权限,
参考:Configuring Privilege and Role Authorization
这三者都有common(指整个CDB)和local(指个别PDB)的区别,都有与之相关的创建和操作SQL语句和数据字典:
用户:
local user是针对PDB的。
创建、修改、删除用户的例子SQL语句:
这样创建用户后,用户没有任何权限,还需要给他赋予权限,才能连接数据库,参考:
Managing Security for Oracle Database Users
用户名是大小写不敏感的,除非用双引号括起来。
所有用户的默认表空间是SYSTEM表空间。
用户信息数据字典,参考
Managing Security for Oracle Database Users
其中常用的有:ALL_USERS、DBA_USERS
角色:
首先,角色相当于一个用户,角色不属于某个用户的,而是数据库全局的,所以创建角色时,名称全数据库范围内不能与已有用户名、角色名重复。
创建角色SQL语句:
角色创建完后,并没有任何权限,要像给用户赋权一样,给角色赋予权限,然后就可以用这个角色,给其它用户赋权。
关于角色,还有其它知识点,例如创建角色时的密码,用户修改角色等。
角色信息数据字典:DBA_ROLES
权限:
WITH GRANT OPTION 和 WITH ADMIN OPTION:
在用GRANT向用户赋权时,如果增加了WITH GRANT OPTION,则被赋权的用户,可以将这个权限再赋给其它用户或回收。
WITH ADMIN OPTION比WITH GRANT OPTION能做的更多,用GRANT向用户赋权时,如果增加了WITH ADMIN OPTION,则被赋权的用户,除了可以将这个权限再赋给其它用户或回收,还可以修改和删除这个权限本身。
参考:
GRANT