2011-08-22 41 views
4

我有一个MySQL用户(InnoDB引擎),我想知道将授予它的安全特权是什么? 目前我已经授予它的权限访问特定的数据库和这些特权:我应该授予我的InnoDB MySQL用户什么特权?

SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, ALTER, CREATE TEMPORARY TABLES 

但因为它是InnoDB的我在想,如果我需要明确授予LOCK TABLES的权限给该用户?另外我不确定我是否甚至需要为它授予CREATE TEMPORARY TABLES。 你能帮我弄清楚我应该授予哪些特权吗? Hibernate将有权访问这个用户,所以我也想知道什么足以让它正常工作?

回答

3

您应该授予用户所需的最低权限以使用该系统。请使用grant all on the database

锁定下来的东西来制作时间
但在生产中应该只授予select在桌子上。
格兰特insertupdate上表用户实际需要在添加或更改数据。
Create是,用户几乎从不需要特权。 (除非您希望他们为您设计数据库:-)
同上indexalter,您不希望您的用户使用该功能。
create temp tables可能正常,如果您的应用程序创建临时表。

+0

听起来对我来说是正确的! :) 谢谢! – Rihards

+3

如果您关心性能,授予表级别权限并不是一个好主意。 MySQL不得不为每个查询检查它们,而不像数据库级特权,每个会话通常只检查一次。 – sanmai