这可能是一个简单的问题;如果这个问题是基本的东西,请道歉。
我正在尝试使用Node.js为网站创建一个帐户系统(这只是为了学习!)我已经把表格,Postgres连接等组合在一起了。但是,我现在想知道如何我应该存储有关用户的信息,例如用户名和密码。
我知道可以使用CREATE USER name WITH PASSWORD '';
创建Postgres数据库的用户帐户,但我不确定是否应该:
感谢您的帮助。
答案 0 :(得分:1)
在典型的网络应用程序中,您几乎无法控制谁注册,您不应为每个用户单独ROLE
。相反,您的Web应用程序有一个或几个角色,用户帐户信息存储在常规表中。
通过这种方式,您可以将标准数据库安全性用于Web应用程序(您的代码基本上)正在使用的角色,而您的应用程序逻辑可以确定用户可以查看或执行的操作。
标准数据库安全功能包括可以访问表以查看,插入,修改或删除数据的内容。当应用程序的每个用户都具有数据库角色时,他们需要设置适当的权限。您可以使用组角色进行管理,但是您还有其他问题需要处理。例如:您有1,000个用户,他们都将自己的个人详细信息存储在表user_details
中。这些用户需要能够查看和修改自己的数据,但不能查看和修改任何其他999用户的数据。您可以使用一个过滤数据的视图来设置它,以便属于数据库会话的CURRENT_USER
,但这需要大量的维护。只使用Web应用程序的单个帐户并让业务逻辑进行过滤更容易 - 也更安全。
我建议你阅读database roles和安全性,以正确理解如何建立安全的环境。