权限元数据存储位置:
权限类型元数据存储-系统表用户全局权限mysql.user数据库(DB)权限mysql.db表(table)权限mysql.tables_priv列(columns)权限mysql.columns_privroutine-level(procedures and functions)权限mysql.procs_priv代理(proxy)用户权限mysql.proxies_privTips:值得注意的是,在某些情况下,无论是 CREATE|ALTER USER 还是 GRANT 都可能会记录在服务器日志中或客户端的历史文件中 , 例如 ~/.mysql_history , 这就意味着任何有权读取该信息的人都可以读取明文密码 , 这不就暴露了吗 。 二、瞅瞅其他数据库的用户角色管理1、SQL Server的用户角色服务器级别角色:
- 全局权限 , 只登入名(如超级管理员的登录名是sa)拥有;
- 服务器角色是固定的(包括:sysadmin、setupadmin、serveradmin等),用户无法创建服务器角色,一般也不建议给用户直接分配服务器角色 。
- 作用域为数据库,拥有者可以是用户也可以是数据库角色本身,可以理解数据库角色就是一组相同权限的用户;
- 两种类型的数据库级角色:数据库中预定义的“固定数据库角色(fixed-database roles)”(包括:db_owner、db_ddladmin、db_datawriter等)和可以创建的“用户定义数据库角色(user-defined database roles)” 。
- 请不要将用户定义的数据库角色添加为固定角色的成员,否则会导致意外的权限升级 。
- 一个数据库级主体,使应用程序能够用其自身的、类似用户的权限来运行,可以只允许通过特定应用程序连接的用户访问特定数据;
- 与数据库角色不同的是,应用程序角色默认情况下不包含任何成员,而且是非活动的;
- 默认应用程序角色无法访问服务器级元数据,因为它们不与服务器级主体关联,通过设置全局标志 4616 可放开限制 。
- 数据库用户必须绑定具体的登入名 , 也可以在新建登入名的时候绑定此登入名拥有的数据库,默认就创建了此登入名同名的数据库用户,登入名与数据库用户之间就存在关联关系;
- 数据库用户是架构和数据库角色的拥有者,即可以将某个架构分配给用户,那么该用户就拥有了该架构所包含的对象;也可以将某个数据库角色分配给用户,此用户就拥有该数据库角色的权限 。
- 角色是为用户赋予各种权限的一种对象,为多种权限的集合,使用角色可将一组具有相同权限的用户组织在一起;
- 内置角色:ODC(OceanBase Developer Center,OB开发者中心) 中内置了管理员角色 system_admin ,该角色被自动赋予给管理员用户 admin ,该角色可进行系统有关的所有操作且默认可访问所有的公共资源和个人资源 , 该角色不支持被编辑、删除和停用;
- 自定义新建角色:通过 ODC 新建角色,可支持设置 公共资源权限 和 个人资源权限 。
- 内置用户:ODC 中已内置一个管理员账户 admin ,该账户被自动设置为了管理员角色 system_admin ,所以该账户可进行系统有关的所有操作且默认可访问所有的公共资源,该账户不支持被编辑、删除和停用;
- 自定义新建用户:新建用户操作包括指定用户信息、为新建用户指定角色等,同时可在 ODC 中对用户进行查看、编辑等相关管理操作 。
推荐阅读
- python+request+pymysql+pytest数据驱动
- CentOS 7.9 安装 MySQL 5.7.35
- 关于windows-server-下MySQL Community版本的的安装与配置
- CentOS 7 下安装 MySQL 8.x
- 2021年Q4手机用户偏好榜-2021年安兔兔第四季度用户偏好榜
- day04-MySQL常用函数01
- 我操作MySQL的惊险一幕
- centos7中配置java + mysql +jdk+使用jar部署项目
- day03-MySQL基础知识02
- gRPC+Protocol Buffer Go微服务实战 - 用户服务开发