Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql中创建只能访问特定数据库的新用户_Mysql - Fatal编程技术网

在mysql中创建只能访问特定数据库的新用户

在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_%' 获取用户数据库的

我不知道这是否可能

我需要创建一个新的mysql用户,该用户只能访问带有前缀sayuser\u db\u的数据库

我有一个php应用程序,当添加一个新用户时,它会创建一个数据库user\u db.“userid”。假设创建了三个用户,其数据库分别为用户数据库1用户数据库2用户数据库3


我需要创建一个新的用户,比如说用户帐户,它只能访问用户数据库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';

有三个步骤

  • 创建数据库
  • 创建新用户
  • 使用grant all命令授予权限
  • 像这样

    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。我明白你的意思。这是否意味着无法轻松地同时授予用户对多个但不是所有数据库的权限?可能存在重复的