Mysql 是否可以动态设置下一个查询应使用的权限?

Mysql 是否可以动态设置下一个查询应使用的权限?,mysql,Mysql,我正在制作一个系统,任何用户都应该能够直接对数据库运行实际的MySQL查询。显然,这对联盟和许多安全问题是开放的,我希望使用基本的MySQL权限来解决这些问题。我希望任何用户都能够对某些表(包括联接)运行SELECT查询。其他已登录的用户应具有一些附加权限,例如,包括更新和插入。权限也可能因用户设置、环境变量等而异 总而言之,我想知道是否可以动态设置一组权限并使用这些权限运行查询。我将在MySQL数据库中创建一组用户,使用您需要的不同权限集。 例如: User: NotLoggedIn Perm

我正在制作一个系统,任何用户都应该能够直接对数据库运行实际的MySQL查询。显然,这对联盟和许多安全问题是开放的,我希望使用基本的MySQL权限来解决这些问题。我希望任何用户都能够对某些表(包括联接)运行SELECT查询。其他已登录的用户应具有一些附加权限,例如,包括更新和插入。权限也可能因用户设置、环境变量等而异


总而言之,我想知道是否可以动态设置一组权限并使用这些权限运行查询。

我将在MySQL数据库中创建一组用户,使用您需要的不同权限集。 例如:

User: NotLoggedIn
Permissions: select Table1


User: LoggedInNotValidated
Permissions: Select Table1, Table2


User: LoggedInValidated
Permissions: Select Table1, Table2, Table3. Update Table1, Table2, Table3

然后,当一个用户想要执行一个操作,一个select,你检查他是否登录并验证是或否,然后使用正确的用户连接到数据库,允许这个用户的操作不超过该模式(或数据库用户)允许的操作。

是的,但这并不像我所说的那样动态。我需要1000个MySQL用户来覆盖我可能需要的所有权限组合。好吧,您确实可以使用GRANT语法更改任何用户的权限:GRANT SELECT ON database.*对于用户@localhost',我希望这是永久的,而不是在每个连接的基础上配置的?这对该用户来说是永久的,除非你授予他其他权利。当20个连接同时使用该用户时,这将不起作用