我有我的应用程序与访问控制列表(这些都是表/架构/对象)的用户。目前这些都是从数据库中读取的,布尔值用于指示他们可以查看/处理的内容。但是,任何人仍然可以访问数据库并更改数据。有人可以提供一些我可以做什么样的事情的建议吗?我希望我清楚我们有用户(uname + pass)和acl(empui_access,empdat_manipulate)。通过代码等所有还挺安全解决方案......针对数据库中访问控制列表的安全设计建议?
0
A
回答
0
喜欢的东西
table users
username: string
password_hash: hex
acl: bit array
的用户名是用户名,password_hash是密码的散列,用一粒盐。存储一个简单的密码是错误的,但您已经知道,不是吗?
ACL被声明为字符串,但用作位数组。 每一位代表一定的权限。 1表示用户有权限,0表示他没有权限。要检查某个位的值,可以在acl上按位进行操作。如果结果不为零,则授予访问权限。如果结果为零,则访问被拒绝。
例如:
// permission to read employee data
public const long READ_EMPL_DATA = 0x01
...
{
User user = database.GetSomeUser();
// test for READ_EMPL_DATA permission
if (0 != (user.ACL & READ_EMPL_DATA)) {
// access granted
} else {
// access denied
}
// give READ_EMPL_DATA permission
if (0 != (user.ACL & READ_EMPL_DATA))
user.ACL = user.ACL & READ_EMPL_DATA
}
要添加组的支持,加入一对表。
table group
groupname: string
acl: bit array
table user_group
user_id: id
group_id: id
除了测试用户级权限之外,还测试用户所属的组。当然,你会写一些帮助函数,也许是一个存储过程。
我希望这能让你开始。如果没有,我可以给你一个更具描述性的例子,或更多的实际代码或其他帮助。
-1
这是特定于PostgreSQL,但您可能从Veil得到一些好主意。
相关问题
- 1. 对C#数据库访问的建议
- 2. 针对可配置产品eshop的数据库设计建议
- 3. 针对多个目录的数据库设计建议
- 4. 针对博客农场的数据库设计建议
- 5. 针对投资组合网站的数据库设计建议
- 6. 针对单个用户访问的建议数据库
- 7. 安全漏洞访问控制:sqlite中的数据库插入
- 8. 数据库设计建议
- 9. 数据库设计建议
- 10. 数据库设计 - 建议
- 11. 针对全球数据访问和修改的正确设计
- 12. 安全和访问控制
- 13. 基于角色的访问控制数据库设计
- 14. SQL数据库设计建议:命名数据库表
- 15. 针对MongoDB架构设计的建议
- 16. 针对coredata的模型设计建议
- 17. 关于数据库设计的建议
- 18. 建议最优的数据库设计
- 19. 所需的数据库设计建议
- 20. 使用锁来控制对非线程安全库的访问
- 21. 访问控制列表来管理提取的数据库列
- 22. 针对iOS应用的安全设计
- 23. 数据库设计:定义访问控制
- 24. 专门针对安全性的应用程序API设计建议
- 25. 针对具有变体的手机的数据库设计建议
- 26. 安全建议:SSL和API访问
- 27. 针对具有外部ODBC访问的嵌入式数据库的建议?
- 28. 针对多列相同数据模式的数据库设计
- 29. 邻接列表vs mptt设计访问控制列表
- 30. 针对教师,科目和成绩的设计建议数据库
您使用的数据库是? SQL Server? MySQL的?甲骨文?有很多不同的权利吗?很多用户?每个权利有不同的访问级别? – DonkeyMaster 2009-05-26 10:40:44
数据库我不用担心任何与编码设计有关的任何问题。 – abmv 2009-05-26 11:00:17