在mysql中创建只能访问特定数据库的新用户
我不知道这是否可能 我需要创建一个新的mysql用户,该用户只能访问带有前缀sayuser\u db\u的数据库 我有一个php应用程序,当添加一个新用户时,它会创建一个数据库user\u db.“userid”。假设创建了三个用户,其数据库分别为用户数据库1,用户数据库2,用户数据库3在mysql中创建只能访问特定数据库的新用户,mysql,Mysql,我不知道这是否可能 我需要创建一个新的mysql用户,该用户只能访问带有前缀sayuser\u db\u的数据库 我有一个php应用程序,当添加一个新用户时,它会创建一个数据库user\u db.“userid”。假设创建了三个用户,其数据库分别为用户数据库1,用户数据库2,用户数据库3 我需要创建一个新的用户,比如说用户帐户,它只能访问用户数据库1,用户数据库2,用户数据库3,…,用户数据库n您可以使用以下组合 SHOW DATABASES LIKE 'user_db_%' 获取用户数据库的
我需要创建一个新的用户,比如说用户帐户,它只能访问用户数据库1,用户数据库2,用户数据库3,…,用户数据库n您可以使用以下组合
SHOW DATABASES LIKE 'user_db_%'
获取用户数据库的当前列表,以及
CREATE USER 'username'@'hostname' ...
创建用户,以及
GRANT ALL ON user_db_N.* TO 'username'@'hostname'
要为从
SHOW databases
获得的每个数据库为用户设置数据库权限,请使用以下代码授予特定数据库的权限
grant all privileges on DB_NAME.* to 'USER'@'REMOTE_IP' identified by 'PASSWORD';
有三个步骤
CREATE DATABASE DBTEST
如果运行成功且没有任何错误,则创建新用户
CREATE USER 'NEWUSER'@'LOCALHOST' IDENTIFIED BY 'NEWUSERPASSWORD'
用户创建后,授予创建表drop table的权限
GRANT ALL PRIVILEGES ON *.* TO 'NEWUSER'@'LOCALHOST'
毕竟,给一个命令
FLUSH PRIVILEGES
更新日期2015年3月31日(如评论中所述)
您可以这样授予特定数据库的权限
GRANT ALL PRIVILEGES ON DBTEST.* TO 'NEWUSER'@'LOCALHOST
事实上,在我设置了这个特权之后,数据库就不能创建了。因此,它只能创建带有前缀的特权。您所说的“…在我设置此特权之后,数据库不能创建”是什么意思?您当然需要做的是在每次创建新创建的数据库时为您的用户帐户重新分配特权。嘿,Peter。我明白你的意思。这是否意味着无法轻松地同时授予用户对多个但不是所有数据库的权限?可能存在重复的