MySQL:如何锁定表中的单个行?

MySQL:如何锁定表中的单个行?,mysql,Mysql,为了提高我正在开发的应用程序的安全性,我希望能够防止任何类型的数据库修改。我知道我可以从mysql用户那里锁定整个表,但是单个行呢 我仍然可以向表中添加新行吗?可能对于一个特定的表,只允许使用SELECT和INSERT命令?这将是“行级安全性”。MySQL没有它,所以您需要自己实现它 例如,“AddedBy”列可用于将数据更改限制为同一组中的其他成员。当然,如果Addedby用户更改了组,则必须跟踪该组 要限制仅允许插入和选择,只需授予这些权限 否则,请添加更多用例,这将是“行级安全性”。MyS

为了提高我正在开发的应用程序的安全性,我希望能够防止任何类型的数据库修改。我知道我可以从mysql用户那里锁定整个表,但是单个行呢

我仍然可以向表中添加新行吗?可能对于一个特定的表,只允许使用SELECT和INSERT命令?

这将是“行级安全性”。MySQL没有它,所以您需要自己实现它

例如,“AddedBy”列可用于将数据更改限制为同一组中的其他成员。当然,如果Addedby用户更改了组,则必须跟踪该组

要限制仅允许插入和选择,只需授予这些权限

否则,请添加更多用例,这将是“行级安全性”。MySQL没有它,所以您需要自己实现它

例如,“AddedBy”列可用于将数据更改限制为同一组中的其他成员。当然,如果Addedby用户更改了组,则必须跟踪该组

要限制仅允许插入和选择,只需授予这些权限


否则,请添加更多用例

您可以为您的应用程序使用特定的数据库用户,并对所需的表具有有限的权限(无插入,删除)。

您可以为您的应用程序使用特定的数据库用户,并具有有限的权限(无插入,删除)对于所需的表。

听起来您希望允许插入新行和查询现有行,但不希望允许更新或删除行。如果这是正确的,那么您将希望创建一个MySQL用户,该用户对所讨论的表只有INSERT和SELECT权限。不要授予更新和删除权限

要插入并选择my_表中用户foo的权限,请执行以下操作:

GRANT SELECT, INSERT ON my_table TO 'foo'@'localhost';
REVOKE UPDATE, DELETE ON my_table FROM 'foo'@'localhost';
要更新和删除my_表上用户foo的权限,请执行以下操作:

GRANT SELECT, INSERT ON my_table TO 'foo'@'localhost';
REVOKE UPDATE, DELETE ON my_table FROM 'foo'@'localhost';

听起来您希望允许插入新行和查询现有行,但不希望允许更新或删除行。如果这是正确的,那么您将希望创建一个MySQL用户,该用户对所讨论的表只有INSERT和SELECT权限。不要授予更新和删除权限

要插入并选择my_表中用户foo的权限,请执行以下操作:

GRANT SELECT, INSERT ON my_table TO 'foo'@'localhost';
REVOKE UPDATE, DELETE ON my_table FROM 'foo'@'localhost';
要更新和删除my_表上用户foo的权限,请执行以下操作:

GRANT SELECT, INSERT ON my_table TO 'foo'@'localhost';
REVOKE UPDATE, DELETE ON my_table FROM 'foo'@'localhost';

那是错误的:@feeela:我说的是“行级安全”。我没有说“行级锁定”。阅读我的答案:不要评论我没有写的东西。为了帮助您阅读这些:我给了这个回答a+1,因为帖子的标题询问了各个行,描述提到了安全性。完全合理的回答,伊姆霍。它不应该得到别人给它的-1。我必须喜欢那些没有正确阅读答案的人投的反对票+我问了我一个正确的答案。那是错误的:@feeela:我说的是“行级安全”。我没有说“行级锁定”。阅读我的答案:不要评论我没有写的东西。为了帮助您阅读这些:我给了这个回答a+1,因为帖子的标题询问了各个行,描述提到了安全性。完全合理的回答,伊姆霍。它不应该得到别人给它的-1。我必须喜欢那些没有正确阅读答案的人投的反对票+但是,如果视图从中获取数据的记录发生更改,视图中的数据也会发生更改。文章的标题与“锁定”行有关,但详细信息会询问访问控制。了解数据库术语中的“锁”与数据的并发访问有关,例如,“共享锁”允许其他连接读取但不修改数据,而“独占锁”阻止其他连接执行任何操作(隔离级别除外)。这与可以对数据执行的操作类型不同,例如选择、更新、插入、删除。但是,如果视图从中获取数据的记录发生更改,则视图中的数据也会更改。文章标题与“锁定”行相关,但详细信息询问访问控制。了解数据库术语中的“锁”与数据的并发访问有关,例如,“共享锁”允许其他连接读取但不修改数据,而“独占锁”阻止其他连接执行任何操作(隔离级别除外)。这与可以对数据执行的操作类型不同,例如选择、更新、插入、删除。