SHOW VIEW Privilege
This page is part of MariaDB's Documentation.
The parent of this page is: Privileges for MariaDB Xpand
Topics on this page:
Overview
Grants ability to execute SHOW CREATE VIEW.
DETAILS
Scope: Global, Database, Table
Privilege name for
GRANT:SHOW VIEWPrivilege name for
REVOKE:SHOW VIEWPrivilege shown by
SHOW GRANTS:SHOW VIEW
MariaDB Xpand's SHOW VIEW privilege allows certain SQL statements to be executed:
EXAMPLES
GRANT
The following examples demonstrate grant of a single privilege. A single GRANT statement can grant multiple privileges at the same scope by providing a comma-separated list of the privileges.
To grant the SHOW VIEW privilege at global scope, replace the user specification ('USERNAME'@'HOSTNAME') in the following query to align to your requirements:
GRANT SHOW VIEW
ON *.*
TO 'USERNAME'@'HOSTNAME';
To grant the SHOW VIEW privilege at database scope, replace the user specification ('USERNAME'@'HOSTNAME') and database name (DATABASE_NAME) in the following query to align to your requirements:
GRANT SHOW VIEW
ON DATABASE_NAME.*
TO 'USERNAME'@'HOSTNAME';
To grant the SHOW VIEW privilege at table scope, replace the user specification ('USERNAME'@'HOSTNAME'), database name (DATABASE_NAME), and table name (TABLE_NAME) in the following query to align to your requirements:
GRANT SHOW VIEW
ON DATABASE_NAME.TABLE_NAME
TO 'USERNAME'@'HOSTNAME';
REVOKE
The following examples demonstrate revoke of a single previously-granted privilege. A single REVOKE statement can revoke multiple privileges at the same scope by providing a comma-separated list of the privileges.
To revoke the SHOW VIEW privilege at global scope, replace the user specification ('USERNAME'@'HOSTNAME') in the following query to align to your requirements:
REVOKE SHOW VIEW
ON *.*
FROM 'USERNAME'@'HOSTNAME';
To revoke the SHOW VIEW privilege at database scope, replace the user specification ('USERNAME'@'HOSTNAME') and database name (DATABASE_NAME) in the following query to align to your requirements:
REVOKE SHOW VIEW
ON DATABASE_NAME.*
FROM 'USERNAME'@'HOSTNAME';
To revoke the SHOW VIEW privilege at table scope, replace the user specification ('USERNAME'@'HOSTNAME'), database name (DATABASE_NAME), and table name (TABLE_NAME) in the following query to align to your requirements:
REVOKE SHOW VIEW
ON DATABASE_NAME.TABLE_NAME
FROM 'USERNAME'@'HOSTNAME';
SHOW Output
A user's privileges can be displayed using the SHOW GRANTS statement.
If the SHOW VIEW privilege is present, it will be shown as SHOW VIEW in the output. For example:
SHOW GRANTS FOR 'app_user'@'192.0.2.%';
+---------------------------------------------------------+
| Grants for app_user@192.0.2.% |
+---------------------------------------------------------+
| GRANT SHOW VIEW ON `app_db`.* TO 'app_user'@'192.0.2.%' |
+---------------------------------------------------------+
Privilege Failure
An error message is raised if an operation fails due to insufficient privileges. For example:
CREATE VIEW hq_sales.2022_03_invoices AS
SELECT * FROM hq_sales.invoices
WHERE MONTH(invoice_date) = 3 AND YEAR(invoice_date) = 2021;
SHOW CREATE VIEW hq_sales.2022_03_invoices\G
ERROR 1045 (HY000): [11281] Permission denied: User 'USERNAME'@'HOSTNAME' is missing SHOW VIEW on `hq_sales`.`2022_03_invoices`; transaction aborted
