Azure SQL创建master数据库主密钥遇权限错误,求解决方法
嗨,我来帮你搞定这个权限问题!
问题原因
在Azure SQL Database里,执行CREATE MASTER KEY(创建数据库主密钥)操作需要的是服务器级的CONTROL权限,而不是仅仅作为单个数据库的所有者(db_owner)权限。虽然你是ExDatabase1和ExDatabase2的所有者,但master数据库的权限体系是独立的,默认情况下,Azure SQL Server的普通登录用户(比如你的user01)并不会自动获得master数据库的CONTROL权限,这就是你收到Msg 15247错误的原因。
解决步骤
你需要借助拥有更高权限的账号(比如创建Azure SQL Server时设置的服务器管理员账号)来给user01授予对应的权限,具体操作如下:
切换到服务器管理员身份登录SSMS
先用服务器管理员账号(不是user01)连接到你的Azure SQL Server。给user01授予master数据库的CONTROL权限
执行以下SQL命令:USE master; GO GRANT CONTROL ON DATABASE::master TO user01; GO用user01重新执行创建主密钥的命令
切回user01身份登录SSMS,再次运行你的创建命令:USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Strongp@ssw0rd'; GO
额外提示
- 如果你没有服务器管理员账号的访问权限,得联系Azure门户中该SQL Server的管理员来帮你完成权限授予。
- 要注意:Azure SQL的透明数据加密(TDE)密钥是由Azure自动管理的,你创建的数据库主密钥主要用于加密你自己管理的证书、非对称密钥等对象,两者作用不同哦。
内容的提问来源于stack exchange,提问作者Truong Huy
相关产品推荐
相关产品推荐

