database-design - 数据库服务器或数据库表中的用户

标签 database-design

我遇到了一个关于客户端服务器应用程序设计的有趣问题。

我们有这个基于浏览器的管理应用程序,许多用户都在使用该系统。很明显,在该应用程序中,我们有一个用户管理模块。

我一直认为在数据库中有一个用户表来保存所有登录详细信息就足够了。

但是,一位资深开发人员表示,用户管理应该在数据库服务器层完成,否则设计不佳。他的意思是,如果用户想要使用该应用程序,则应在用户表中创建用户,并在数据库服务器中创建用户作为用户帐户。

因此,如果我有 50 个用户使用我的应用程序,那么我应该有 50 个数据库服务器用户登录。

我个人认为在该数据库的数据库服务器中只有一个用户帐户就足够了。只需授予此用户允许的权限即可操作应用程序所需的所有必要操作。与应用程序交互的用户应该在数据库表中创建和管理他们的用户帐户,因为他们与应用程序层更相关。我不认为并同意有必要为在用户表中为应用程序创建的每个用户创建一个数据库服务器用户帐户。

单个数据库服务器用户应该足以处理应用程序发送的所有查询。

真的希望听到一些建议/意见以及我是否遗漏了什么?性能或安全问题?

非常感谢。

最佳答案

不,用户被授权使用该应用程序;应用程序被授权访问数据库。你不需要两者。

您可能在数据库中拥有不同的访问权限(例如,用户不能删除或删除表;管理员可以执行任何操作)。在这种情况下,通常采用用户-组-角色设计,其中将用户分配到组中,并且每个组都有自己的权限。

关于database-design - 数据库服务器或数据库表中的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2996480/

相关文章:

ruby-on-rails - Rails 环境中的 CQRS?

mysql - 灯 : How to Implement Scheduling?

数据库设计 : how to store translated numbers?

ruby-on-rails - 单独的用户和帐户模型的优点/缺点是什么

database-design - protobuf 消息或嵌套消息中最好有多个字段吗?

mysql - 如何在mysql触发器中添加修改信息?

mysql - 如何存储嵌套的编号段落(1、1.1、1.1.1)?

database - 在数据库列中存储分隔列表真的那么糟糕吗?

MySQL序列与id列的自动递增

c# - EF6 代码第一个模型 ForeignKey