gpt4 book ai didi

sql-server - 从 Management Studio 隐藏 SQL 数据库

转载 作者:行者123 更新时间:2023-12-01 18:37:12 26 4
gpt4 key购买 nike

登录 SQL Server 2005/2008 时如何隐藏您无权访问的数据库?

目前,如果用户连接,他们会看到服务器上的所有数据库,这意味着他们必须扫描列表才能找到他们的数据库。

最佳答案

经过几个小时的尝试弄清楚如何创建一个只能访问 1 个数据库并且只能看到该数据库的用户帐户。我想我明白了!!!!

  1. 创建用户帐户(确保其未映射到任何数据库,否则您将收到最终错误 Msg 15110,级别 16,状态 1 并注意建议的解决方案)

    USE [master]
    GO
    CREATE LOGIN [us4]
    WITH PASSWORD=N'123',
    DEFAULT_DATABASE=[master],
    CHECK_EXPIRATION=OFF,
    CHECK_POLICY=OFF
  2. 右键单击 SQL 的上半部分(SQLSERVER 名称)>属性>权限>单击用户帐户 ,然后选择拒绝以查看数据库。

    use [master]
    GO
    DENY VIEW ANY DATABASE TO [us4]
  3. 右键单击新创建的数据库、属性、文件,然后将所有者更改为新创建的帐户。(重要说明:ALTER ROLE [db_owner] ADD MEMBER [ us4] 不起作用)

    USE [dbname]
    GO
    EXEC dbo.sp_changedbowner @loginame = N'us4', @map = false

此时,一旦用户登录,他将看到Master,tempdb,并且还将看到他是数据库所有者的新数据库..您可能需要转到工具>选项 并启用隐藏系统对象的选项,这样就不会显示 master、tempdb 等。如果此选项不起作用,您可能还需要 SP1

Msg 15110, Level 16, State 1, Line 1
The proposed new database owner is already a user or aliased in the database.

针对 Msg 15110 的建议解决方案:要解决上述错误,只需从数据库安全节点中删除用户,然后重试

希望有帮助...

尼基尔

关于sql-server - 从 Management Studio 隐藏 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/935018/

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