我的数据库中有两种模式:商业和品牌。每个企业都有一个或多个访问多个品牌的权限,例如阅读,更新和删除。
我不确定实施访问控制的最佳方法是什么。目前,我创建了一个包含多个字段的联接表:business_id
,brand_id
,can_read
,can_update
,can_delete
,每当采取某些操作时,我检查一下这张桌子。
但是,我意识到这种方法是在应用程序级别,而不是在数据库级别。
我的问题是,有没有办法在数据库级别实现这种访问控制?
我在Postgresql"中使用Google搜索" ACL,但结果都是关于数据库本身的帐户,而不是它存储的数据。
请帮忙!
答案 0 :(得分:0)
您可能需要考虑行级安全策略。这是PostgreSQL v9.5中的一个新功能。
有关详细信息,请参阅Row Security Policies。
答案 1 :(得分:-1)
你的出发点应该是Postgres中的grant命令
我通常建议允许/授予每个企业只是访问具有所有相关数据的特定视图
表格只能由管理员访问。