在 Web 应用程序中,为了获取数据,我们可以先请求用户进行身份验证。身份验证也在 Web 服务器端完成。
本地网络应用程序呢,不涉及服务,应用程序直接连接到数据库(数据库位于服务器 PC 上)。我该怎么做:这张表只能由经过身份验证的用户读取,这张表只能由所有用户读取,等等。
在 Web 应用程序中,为了获取数据,我们可以先请求用户进行身份验证。身份验证也在 Web 服务器端完成。
本地网络应用程序呢,不涉及服务,应用程序直接连接到数据库(数据库位于服务器 PC 上)。我该怎么做:这张表只能由经过身份验证的用户读取,这张表只能由所有用户读取,等等。
未经身份验证,您无法连接到数据库(mySQl、Oracle、SQLServer)。
通常您会将连接信息存储在配置文件中,但您也可以不这样做并要求您的用户提供他们自己的凭据。
大多数 SGBD 将允许您为每个用户配置读/写权限。
如果我正确理解您的问题如果网络上的所有用户都属于域使用 Windows 身份验证,那么您的连接字符串将类似于:
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
否则您将不得不使用用户身份验证:
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
这些都是为 sql server 完成的:
其他人检查一下。
希望能帮助到你
您需要以与 Web 应用程序相同的方式为数据库本身配置权限。通常,如果是桌面客户端,您将授予用户 Web 应用程序在足够的权限下运行以在数据库中执行所有操作 - 向各个用户授予适当的权限。
请注意,这种设计比通常可以接受的更多的数据库访问权限。