如何在SQL Server中为用户授予CREATE DATABASE权限?
错误原因
SQL Server 规定CREATE DATABASE属于服务器级权限,仅支持在系统默认的master数据库上下文下执行授权操作,在任意用户自定义数据库中执行该授权语句都会触发对应的报错。
正确操作步骤
- 第一步:切换当前会话的数据库上下文到
master,执行语句:
USE master; GO
- 第二步:重新执行授权语句即可生效:
GRANT CREATE DATABASE TO rmedrano; GO
可选验证操作
你可以执行以下语句验证授权是否生效:
-- 切换到目标用户身份 EXECUTE AS USER = 'rmedrano'; GO -- 测试创建数据库 CREATE DATABASE TestDBForCheck; GO -- 切回原登录身份 REVERT; GO -- 验证完成后可删除测试库 DROP DATABASE TestDBForCheck; GO
注意事项
后续如果需要回收该用户的创建数据库权限,也需要先切换到master库再执行回收语句:
USE master; GO REVOKE CREATE DATABASE TO rmedrano; GO
内容的提问来源于stack exchange,提问作者Br0k3nS0u1
相关产品推荐
相关产品推荐

