【问题标题】:PHP (More SQL (MySQL/MariaDB)) - May I (the user) create a schemaPHP(更多 SQL(MySQL/MariaDB))- 我(用户)可以创建一个模式吗
【发布时间】:2013-08-27 17:52:56
【问题描述】:

有没有一种方法可以在不创建架构并检查失败的情况下检查是否 / 可能/ 创建架构?我查看了SHOW PRIVILEGES,但它显示了“ALL”(对于 root)并且往往仅适用于选定的架构。

我一直在搜索,但大多数结果都是关于架构中的权限(因为架构是我的搜索词之一)

我已经提到我正在使用 PHP - 我不想,我必须 - 如果有人想向我展示一个解析输出的函数以推断出一个人可能会创建一个模式。

请注意,我不想(我知道,但我知道如何)查看架构是否存在,我想知道我是否可以创建一个架构而不实际执行它并查看它是否失败。

【问题讨论】:

    标签: php mysql sql mariadb


    【解决方案1】:
    show grants for 'username'@'host';
    +--------------------------------------------------------------------------------------------------------------+
    | Grants for openout@localhost                                                                                    |
    +----------------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'username'@'host' IDENTIFIED BY PASSWORD '*7041D3FA70F2EA166023420014A033ECA410EAB2' |
    | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `adatabase`.* TO 'username'@'host'      |
    +----------------------------------------------------------------------------------------------------------------+
    2 rows in set (0.00 sec)
    

    问题在于它对主机字段中的内容以及它的解释方式有点挑剔 - 并且输出难以解析 - 在 mysql 架构中查看用户、mysql 和数据库表可能更简单。

    【讨论】:

    • 那些适用于架构上的表,我想知道 CREATE SCHEMA 或 CREATE DATABASE(同义词)是否可以在不尝试的情况下工作,如果不工作则失败
    • 顺便说一句,我投了反对票,因为我认为当答案不适用时我应该这样做,因为你是一个比我大得多的成员,这是正确的做法吗?
    • 要允许用户创建数据库,您需要在 . 上授予创建权限 - 这将报告为“显示授权”。见dev.mysql.com/doc/refman/5.0/en/…
    • "CREATE 权限允许创建新数据库和表"
    • 那么它们的区别是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-28
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 2012-01-26
    相关资源
    最近更新 更多