执行以下命令:
授予学生对事件的选择;
授予学生访问整个事件表的权限?如果是,如何只允许学生访问由各自学生创建的事件(S)记录?
发布于 2015-04-05 11:08:08
注意:当我写答案时(下面),我没有注意到你的问题是MySQL问题。请理解我的答案是MS SQL Server平台。我从未使用过MySQL (而且可能永远也不会使用),所以我不确定权限模型是否相同。尽管如此,只要MySQL提供函数返回当前的“用户”以与保存的用户信息匹配,我的“解决方案”就可以在MySQL中工作。
记录不是可以在Server安全系统中授予(或拒绝或撤销)权限的“对象”。只有数据库对象(即表、视图、存储过程、函数等)可以使用GRANT语句修改权限。控制对给定用户创建的记录的访问的唯一方法是建立数据库,以便在数据中记录记录的“所有者”。您可以向表“创建者”或类似的名称中添加一个列,并将用户的登录保存在该列中(还可以将此数据保存在另一个表中)。例如(RecordID,UserID)或对此有影响的东西。接下来是你的挑战:如何真正控制对记录的访问。那么,您要做的唯一方法是确保通过使用存储过程来提供对表的所有访问,并且在访问表的存储过程中,构建逻辑来检查当前用户与保存记录的用户之间的关系,并决定允许或拒绝访问。或者,您可以通过使用视图(对user列使用where子句和返回当前用户的函数)来控制访问,但是,我个人认为,我将使用存储过程路由(因为我认为所有访问都应该首先通过SPs ).
https://dba.stackexchange.com/questions/97059
复制相似问题