gpt4 book ai didi

sql-server - 授予用户创建新数据库的权限,但拒绝现有数据库的权限

转载 作者:行者123 更新时间:2023-12-03 08:50:54 24 4
gpt4 key购买 nike

我收到了开发人员的请求,

  • 他们需要一个需要创建新数据库权限的新用户
  • 更改这些内容,但应该无法访问现有的内容。

这种访问的最佳实践是什么?

授予 dbcreator 并拒绝对现有数据库的访问,或者是否有更好的方法?

最佳答案

默认情况下,SQL Server dbcreator 不授予您访问数据库的权限。看起来可能是这样,因为当您创建新数据库时,您(通常,除非另有说明)自动成为该数据库的所有者。数据库的所有者可以执行该数据库中的所有操作。

但是,如果登录名具有 dbcreator 服务器角色,他们仍然可以删除不属于他们的数据库。他们可以创建新的数据库或更改现有的数据库。

如果您的目的纯粹是允许他们创建新数据库并仅管理这些数据库。您应该只授予他们创建权限。

USE MASTER
GO
GRANT CREATE ANY DATABASE TO Foo
GO

这仍然允许他们对他们创建的数据库运行 ALTER 语句(因为他们是所述数据库的所有者)。但不要对现有数据库运行更改(或删除)语句。

USE MASTER
GO
CREATE DATABASE [OwnedDB] --Succeeds
GO
ALTER DATABASE [OwnedDB] SET RECOVERY SIMPLE WITH NO_WAIT --Succeeds
GO
ALTER DATABASE [UnownedDB] SET RECOVERY SIMPLE WITH NO_WAIT --Fails due to permissions
GO

关于sql-server - 授予用户创建新数据库的权限,但拒绝现有数据库的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59046178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com