【问题标题】:make Sql Server database public (allow read and write within network)使 Sql Server 数据库公开(允许在网络内读写)
【发布时间】:2013-10-28 23:43:29
【问题描述】:

如何修改 Sql Server 数据库属性以使其公开,以便网络中的所有用户都可以读取和写入它?(他们将通过 VBA 代码这样做) 到目前为止,我使用的方法是授予 DB Security 对网络登录名/用户的访问权限。

所需方法:我希望将数据库设为公开并更改 VBA 代码,以便根据网络用户名允许/限制某些操作。

【问题讨论】:

  • 贵公司是否使用 Active Directory?

标签: sql sql-server-2008 vba


【解决方案1】:

我要做的是在 VBA 中检索用户的 user_id

environ('username') 

并通过服务器脚本访问数据库。

  • 创建存储内部网络用户的表(通过 Active Directory,您可以使用 LDAP,否则您自己存储 id);

  • 创建一个从 VBA 到服务器脚本的 Ajax 调用,并检查用户是否存在;

我参考了我之前制定的关于如何创建 Ajax 调用的答案:
Updating Oracle Table from Excel VBA Macro using ODBC connection

  • 从服务器脚本执行所有数据库事务(不是从 VBA 直接到数据库)。您可以使用带有 url 字符串的 GET 参数发送必要的 sql 条件(查看有关如何通过 Ajax 执行此操作的链接);

此外,您可以通过将自创密钥从 vba 工具发送到服务器脚本(这可以在 VBA 代码中硬编码)来嵌入额外的安全性,并在执行任何补充操作之前验证这一点。
这是为了验证客户端的 VBA 工具是否应该有权访问脚本。

【讨论】:

  • 非常感谢金!你能告诉我如何公开数据库吗?目前,我不通过网络登录或其他任何方式来限制对数据库的读取/写入。如果数据库是公共的,这些操作会起作用,但现在它们不起作用(所以我必须为每个用户授予 Sql Server 中的权限,正是因为数据库是私有的,可能默认情况下)。
  • 数据库不应公开。使用服务器脚本,您可以管理与数据库的连接;这是您在执行 sql 事务之前输入数据库登录凭据的地方。
  • 对于特定用户角色和权限的分配,您最好在 PHP/ASP 中编写一个类来管理这些角色/权限。作为root用户,意味着你拥有所有权限;您可以以角色的形式将权限分配给其他用户(例如,经理、普通用户……)。然后你说如果用户有某个角色,(s)他有权执行某些查询(在这个范围内)。我建议阅读 RBAC 或基于角色的访问控制。
猜你喜欢
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-24
  • 2012-06-25
  • 2012-08-09
相关资源
最近更新 更多