Sql server 如何恢复对另一个用户在Google云平台上创建的SQL Server数据库的访问?

Sql server 如何恢复对另一个用户在Google云平台上创建的SQL Server数据库的访问?,sql-server,google-cloud-platform,google-cloud-sql,Sql Server,Google Cloud Platform,Google Cloud Sql,我刚刚创建了一个新的Google云平台SQL Server托管实例。作为默认用户(sqlserver)登录后,我使用以下代码创建了一个新角色: CREATE SERVER ROLE MyDBCreatorRole AUTHORIZATION CustomerDbRootRole Grant CONNECT SQL TO MyDBCreatorRole as CustomerDbRootRole Grant Create any database TO MyDBCreatorRole as Cus

我刚刚创建了一个新的Google云平台SQL Server托管实例。作为默认用户(sqlserver)登录后,我使用以下代码创建了一个新角色:

CREATE SERVER ROLE MyDBCreatorRole AUTHORIZATION CustomerDbRootRole
Grant CONNECT SQL TO MyDBCreatorRole as CustomerDbRootRole
Grant Create any database TO MyDBCreatorRole as CustomerDbRootRole
然后我创建了一个新用户(dbcreatoruser),与新用户一起登录并创建了一个新数据库(newdb1)。标准sqlserver用户无法访问新数据库,因为它对新用户创建的数据库没有权限。 然后我删除了dbcreatoruser用户(这是一个测试环境)

既然谷歌云平台不允许访问“sysadmin”功能,有没有办法重新控制“newdb1”数据库


由于标准CustomerDbRootRole没有足够的权限修改数据库,因此我创建具有足够权限的服务器角色的所有尝试都失败了。我正在一个测试环境中工作,但我想知道如果生产环境出现问题,我该怎么办。

鉴于您通常不能对云SQL使用超级权限[1],我认为最好的方法是确定创建数据库的用户是根用户,并且永远不要删除它

此外,我认为如果生产中出现问题,您应该联系谷歌云支持部门,创建一个PIT[2]或创建一个案例[3],看看他们能为您做些什么来删除该数据库

如果为了将来的业务需求,您需要在SQL Server中拥有超级权限,您可能还需要提出类似[4]的功能请求

[1]

[2]

[3]


[4]

考虑到一般情况下不能对云SQL使用超级权限[1],我认为最好的方法是确定创建数据库的用户是根用户,并且永远不要删除它

此外,我认为如果生产中出现问题,您应该联系谷歌云支持部门,创建一个PIT[2]或创建一个案例[3],看看他们能为您做些什么来删除该数据库

如果为了将来的业务需求,您需要在SQL Server中拥有超级权限,您可能还需要提出类似[4]的功能请求

[1]

[2]

[3]


[4]

谢谢。我想我将尝试通过提供一个存储过程来解决这个问题,该存储过程可供创建数据库的特定用户集访问,并自动将sqlserver用户添加为db_owner谢谢。我想我将尝试通过提供一个存储过程来解决这个问题,该存储过程可供创建数据库的特定用户集访问,并自动将sqlserver用户添加为db_所有者