简体中文
Appearance
简体中文
Appearance
访问控制系统是数据库安全的核心机制,负责管理用户连接权限和数据操作权限。Datalayers 采用基于用户、权限和角色的三层访问控制模型,实现对数据库资源的精细化安全管理。
用户是指能够连接到 Datalayers 数据库的客户端身份。每个用户账户由用户名和主机名共同标识,形成完整的访问上下文。
示例:
'user'@'127.0.0.1':仅允许从本地主机连接的 user 用户'user'@'%':允许从任意主机连接的 user 用户这种设计支持基于源IP的细粒度访问控制,为不同网络环境的用户设置差异化权限。
更多有关用户账户的信息请参照:用户管理。
权限定义了用户可执行的操作范围,Datalayers 提供三级权限作用域:
全局权限:适用于服务器中所有对象的权限,以及与系统管理相关的权限,例如:在任意数据库中建表的权限,向集群中添加节点的权限等。
数据库权限:适用于指定的数据库及其包含的所有对象的权限。例如:在数据库中建表、删表的权限,访问数据库中某张表的权限等。
对象权限:适用于数据库中的特定对象的权限,当前 Datalayers 仅支持表级权限,例如:访问某张表的权限。
通过授予和撤销这些权限,数据库管理员可以精确控制用户对数据的访问和操作能力。
更多有关权限的信息请参照:权限管理。
角色是一组权限的集合,也可以看作是一种特殊类型的用户。与普通用户一样,角色可以被授予权限。不同的是,角色本身不具备登录能力,无法直接连接数据库。其主要作用是作为权限的载体,可以被分配(授予)给其他用户。当用户被授予某个角色后,便自动继承该角色所拥有的所有权限,从而简化了权限管理。
在实际应用中,角色用于将权限分组,尤其适用于用户数量多、权限需求复杂的场景。管理员可以根据职责或访问级别创建不同的角色(例如,read_only 角色仅授予只读权限,app_user 角色则拥有读写权限),然后将相应角色授予用户。这样,用户将自动继承角色的权限,避免了逐个分配和撤销权限的繁琐操作。
更多有关角色的信息请参照:角色管理。
当一个用户尝试连接到 Datalayers 服务器并执行某个操作时,访问控制系统会进行以下检查: