我想知道oracle中以下两个语句之间有什么区别:
GRANT DBA TO Jack
GRANT ALL PRIVILEGES TO Jack
答案 0 :(得分:0)
我建议您不要尝试提供dba,并且 从不 为任何用户提供所有特权,因为这样的事情应该由经验丰富的开发人员完成。 通常只有 ONE 用户才能获得DBA角色。
根据oracle文档: 安装oracle数据库时,会创建两个管理角色: 1. SYS 2. SYSTEM
SYS 角色可以访问oracle数据库的内部数据字典表。 数据库数据字典的所有基表和视图都存储在模式SYS中。这些基表和视图对Oracle数据库的操作至关重要。为了维护数据字典的完整性,SYS模式中的表仅由数据库操作。
如果您调查任何内部系统表,您可能会面临取消许可
SYSTEM 用户名用于创建显示管理信息的其他表和视图,以及各种Oracle数据库选项和工具使用的内部表和视图。切勿使用SYSTEM模式将感兴趣的表存储到非管理用户。
DBA角色不包括SYSDBA或SYSOPER系统特权。这些是特殊的管理权限,允许管理员执行基本的数据库管理任务,例如创建数据库以及实例启动和关闭。
此处GRANT ALL PRIVILEGES是在特定对象,甚至系统对象上提供给用户的,并且这不包括sys和系统特权,您可以对此类对象执行任何操作,这就是您应该避免使用ALL PRIVILEGES的原因。