![ASP.NET 应用程序连接字符串和 SQL Server 安全/权限](https://linux22.com/image/581762/ASP.NET%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%BF%9E%E6%8E%A5%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%92%8C%20SQL%20Server%20%E5%AE%89%E5%85%A8%2F%E6%9D%83%E9%99%90.png)
我正在部署一个 ASP.NET 应用程序和 SQL Server(2008)数据库实时(生产)服务器. 物理服务器是同时运行SQL Server 2008 和 IIS 7 - 由托管公司提供,并且不是我们内部网络的一部分。
我有几个关于数据库安全性和 ASP.NET 应用程序的连接字符串的问题。
以前,我会创建一个数据库用户并为每个表指定 SELECT/INSERT 等权限 - 但我的问题是50+ 张桌子在这个数据库中,因此执行此操作需要很久。
应用程序需要对每个表进行 SELECT/INSERT/DELETE/UPDATE。
- 有没有比为每个表指定权限更好的方法单独地?
- 有没有等同于集成安全对于实时网络服务器来说 - 有什么缺点?
- 或者有办法提升特定用户的访问权限对特定数据库的完全访问权限
连接字符串还会如何改变?
我只是想找一些专家建议,只是有人指出我的正确方向以及一些链接文档如何找到更好的方法。
非常感谢。
答案1
听起来你可以让用户成为数据库所有者,因为你没有列出非常严格的安全规则。我为所有需要基本数据库访问的简单网站都这样做。如果你需要更严格的策略(即一些数据库用户是只读的,一些只能访问某些表),那么这不是你的选择。
在 SQL Server Management Studio 中,展开Security
>Logins
并右键单击用户,然后转到Properties
,然后User Mapping
。在顶部窗格中,选中数据库旁边的框。然后db_owner
在底部窗格中找到并选中该框。现在用户可以在此数据库上执行所有功能,包括 INSERT、SELECT、UPDATE、DELETE。
数据库级别角色了解每个角色的含义的更多详细信息。