代码之家  ›  专栏  ›  技术社区  ›  Mike Flynn

为站点创建SQL Server登录,但没有SQL Server浏览权限

  •  0
  • Mike Flynn  · 技术社区  · 7 年前

    我有一个承包商,我想让他访问一个连接到数据库的网站。我需要创建一个SQL Server用户,可以连接和读写数据库。

    但是,我不希望这个用户能够通过像managementstudio这样的东西连接到sqlserver。在SQLServerManagementStudio中是否需要启用或禁用权限才能完成此任务?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Stefan Prugg    7 年前

    SQLServerManagementStudio(SSMS)基本上是在后台生成SQL语句的普通客户端。如果您在SSMS中创建一个登录名,那么就不会发生什么神奇的事情,而是创建一个登录名。这可以通过这样一个事实来认识,即(几乎)总是有可能通过“scriptas”生成适当的SQL语句,这通常是在SSMS中通过图形用户界面完成的。 如果您要锁定ssm,那么其他客户端也一样。即使有设置,也有其他可能通过Powershell之类的。所以这不是办法。

    我想你不希望承包商仅仅因为访问了一个数据库就在SQL server上玩游戏吧?他被允许在房子里,但不是在所有的房间里。。。。

    换句话说,这只能通过权限来完成,一方面有一个连接到SQL Server的登录名,另一方面有一个访问数据库的数据库用户。因此,在SQL server级别(登录)和数据库级别(用户)上都有授权。

    CREATE LOGIN testlogin WITH PASSWORD = 'wowThisIsKewl';  
    GO
    
    USE [YourDatabase]
    GO
    CREATE USER [dbuserlogin] FOR LOGIN [testlogin] WITH DEFAULT_SCHEMA=[db_owner]
    GO
    

    每个登录首先属于 SQL Server role “公共”,除非授予额外或不同的授权。您可以连接到此角色,但不能创建数据库、执行备份等。。。。试试看……=)

    database level 允许登录读取和写入数据等。