我有一个创建自己用户的应用程序,然后这些用户登录到应用程序并访问数据库。应该如何创建用户,我应该有用户表还是应该创建数据库级用户?
答案 0 :(得分:1)
这是一个非常开放的问题,例如,如果它是基于网络的或基于桌面的应用程序,你就会遗漏 - 但这里有一些想法。
您说话的用户数量和营业额是多少。成千上万的?百万?十?随着数量和/或营业额变得越来越大,用户表看起来越来越好。例如,亚马逊允许我们创建自己的购物车,我们不是他们的数据库服务器上的用户。
对于具有数据库级别的公司内部的数据库,用户通常更有意义。它使您不必在应用程序中定义整个安全子系统,并确保Microsoft和全球数百万用户已经解决了任何漏洞。
预先在数据库中创建用户表要简单得多。但是,它会对您必须构建的业务规则和安全子系统进行大量工作。 (除了它提到的漏洞之外)
同时利用数据库用户和角色可能会更加复杂(如果您在应用程序中执行此操作)。您需要有人熟悉tsql,系统存储过程,SMO等。但从长远来看,管理角色,用户,组,权限等更容易,如果有必要,您可以在应用程序之外管理所有这些。
无论哪种方式,您的应用程序都必须弄清楚它是如何使用连接字符串的。数据库级用户路由要求连接字符串特定于每个用户。除非您计划使用带有Windows身份验证的域帐户 - ,我认为这是可行的方式。