【问题标题】:How to regain access to a SQL Server database created by another user in Google Cloud Platform?如何重新获得对 Google Cloud Platform 中其他用户创建的 SQL Server 数据库的访问权限?
【发布时间】:2020-08-29 21:42:59
【问题描述】:

我刚刚创建了一个新的 Google Cloud Platform 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 用户(它是一个测试环境)。

由于 Google Cloud Platform 不授予对“sysadmin”功能的访问权限,有没有办法重新获得对“newdb1”数据库的控制权?

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

【问题讨论】:

    标签: sql-server google-cloud-platform google-cloud-sql


    【解决方案1】:

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

    另外我认为,如果生产中出现问题,您应该联系 Google Cloud 支持,方法是创建 PIT[2] 或创建案例 [3],看看他们可以为您删除该数据库做些什么。

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

    [1]https://cloud.google.com/sql/faq

    [2]https://issuetracker.google.com/

    [3]https://cloud.google.com/support/docs/manage-cases#creating_cases

    [4]https://issuetracker.google.com/74357883

    【讨论】:

    • 谢谢。我想我会尝试通过提供一个可供创建数据库并自动将 sqlserver 用户添加为 db_owner 的特定用户集可访问的存储过程来解决此问题
    猜你喜欢
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2016-03-21
    • 2021-10-30
    • 1970-01-01
    相关资源
    最近更新 更多