root帐号为什么没有super权限
关系型数据库没有给root帐号提供super权限。因为一旦用户拥有了super权限,就可以执行很多管理性的命令,比如reset master,set global…,kill,reset slave等,很有可能导致主备关系异常而出现故障。
对于要求super权限的场景,RDS可以提供服务化能力,也可以通过其他方法绕过super权限的限制。
举例1:通过登录数据库执行如下命令来修改参数,会报权限不足,您只能通过RDS界面修改参数。
set global 参数名= 参数值 ;
如果您的脚本中包含set global命令导致super缺失,请删除set global命令,通过RDS界面修改参数。
举例2:执行如下命令出现报错,也是因为没有super权限导致,只需要去除 definer='root' 关键字即可。
create definer='root'@'%’ trigger(procedure)…
如果您缺失super权限,可以使用mysqldump导入数据。
举例3:如果在创建RDS for PostgreSQL插件时缺少super权限,请参考通过SQL命令安装和卸载插件进行创建。
RDS for MySQL内置帐户介绍
您在创建RDS for MySQL数据库实例时,系统会自动为实例创建如下系统帐户(用户不可使用),用于给数据库实例提供完善的后台运维管理服务。
- mysql.session:用于插件内部使用访问服务器 。
- mysql.sys:用于sys schema中对象的定义。
- rdsAdmin:管理帐户,拥有最高的superuser权限,用于查询和修改实例信息、故障排查、迁移、恢复等操作。
- rdsRepl:复制帐户,用于备实例或只读实例在主实例上同步数据。
- rdsMetric:指标监控帐户,用于watchdog采集数据库状态数据。
- rdsbackup:备份帐户,用于后台的备份。
- dsc_readonly:用于数据脱敏。
MySQL是否支持多帐号
MySQL支持多帐号,用户可以自己使用授权命令给这些帐号分配不同的权限以便控制访问不同的表。各个表之间相互独立。
Microsoft SQL Server 2017 企业版主备实例的登录名权限如何同步到只读实例
- 主实例创建的登录名(Login Name)会每分钟自动同步到只读实例,需要等待1分钟,同步完成后只读实例上才可以使用创建的登录名(Login Name)或修改密码权限。
- 在只读实例上可以添加、删除、修改登录名(Login Name)权限,因为主实例创建的登录名(Login Name)会每分钟自动同步到只读实例,所以只读实例上多余登录名(Login Name)以及多余的权限将不会完全删除,可以在只读实例上移除多余的登录名(Login Name)权限。
- 只读实例上的帐号如果在主实例上存在,主实例的密码会同步到只读实例,在只读实例上修改这类登录名(Login Name)的密码将不会生效。
Microsoft SQL Server中主实例的帐号删除重建后,权限是否会自动同步
Microsoft SQL Server中主实例的帐号删除重建后,主实例中的权限及其他修改会自动同步到备实例和只读数据库中。
本地客户端连接实例后如何查看已授权的数据库
使用本地客户端连接数据库后,执行以下命令授权后可正常查看数据库,其中ip表示本地IP地址。
show grants for root@' ip ';
show grants for root@'%';