Mysql 组的数据库架构
我有一个简单的用户和组数据库 用户:uid(pk),姓名,密码(不用担心普通的密码) 组:gid(pk)、名称、所有者\u uid 成员:uid(fk)、gid(fk)(一个用户可以属于多个组) 现在,我不信任我的数据库管理员,希望加密/保护特定列,以便db admin无法将任何现有uid添加到任何gid。如何修改scema以及应该加密哪个列Mysql 组的数据库架构,mysql,database-design,database-schema,Mysql,Database Design,Database Schema,我有一个简单的用户和组数据库 用户:uid(pk),姓名,密码(不用担心普通的密码) 组:gid(pk)、名称、所有者\u uid 成员:uid(fk)、gid(fk)(一个用户可以属于多个组) 现在,我不信任我的数据库管理员,希望加密/保护特定列,以便db admin无法将任何现有uid添加到任何gid。如何修改scema以及应该加密哪个列 我有一个被认为是安全的加密密钥,我想利用sql查询,因此无法完成对表的加密并存储为blob 我认为您不能在数据库约束下执行此要求。你可以通过编程来管理它。
我有一个被认为是安全的加密密钥,我想利用sql查询,因此无法完成对表的加密并存储为blob 我认为您不能在数据库约束下执行此要求。你可以通过编程来管理它。但是,如果您编写一些触发器来处理它,您的(坏)管理员也可以访问触发器 在
成员
中添加一个额外的列,如键信息
Insert
:使用uid
和gid
以及specificsalt组合生成哈希代码(如sha256Hex)。并用uid
和gid
插入成员
中,从成员
中选择
s:您有额外的困难。您应该选择具有正确哈希代码的记录(从成员)
如果您有一个庞大而复杂的salt,而您的管理员无法访问该salt(如您在评论中所述),则他/她无法找到编解码器算法。因此,如果他/她向
成员
中添加了一些记录,您的代码将忽略selects中添加的记录,因为键信息
不能为真 更改您的数据库管理员Ori eish I can’您应该使用散列系统,以便只有通过前端才能向数据库添加有效信息。您能否解释一下,您的管理员是否访问您的源代码、DLL或JAR?(可能使用反编译工具),或者只访问数据库?