这里是 mysql 的新手。
我在 mysql 中创建了一个名为“productes”的数据库,“productos”是数据库表之一。
Productos 有以下列:
CREATE TABLE Productos
(
IdProducto INT NOT NULL AUTO_INCREMENT,
NombreProducto CHAR(40) NOT NULL,
IdProveedor INT,
IdCategoria INT,
PrecioUnidad DECIMAL(20,4),
UnidadesEnExistenci SMALLINT,
Suspendido TINYINT,
KEY (IdCategoria),
KEY (IdCategoria),
KEY (IdProveedor),
KEY (NombreProducto),
PRIMARY KEY (IdProducto),
KEY (IdProveedor)
);
我尝试以 root 用户身份从命令行执行的操作如下:
mysql>GRANT USAGE (PrecioUnidad) ON productes.productos TO pepe@'%' IDENTIFIED BY
'pepe';
(即拒绝从所有域计算机对用户“pepe”的所有访问,以访问表 productos 的列“PrecioUnidad”)
我得到一个错误(ERROR 1064)说我的语法有错误。
我想授予表中其余列的权限并排除特定的列以获得所需的结果,但我认为也许还有另一种方法。
所以我的问题是这个:是否可以将授权使用应用于特定的列表,而我只是在这里遗漏了一些东西,或者是否有另一种方法可以仅禁止一个列表的所有权限?
最佳答案
您可以创建一个包含除 PrecioUnidad 之外的所有列的 View ,然后授予(允许)pepe 访问该 View 的权限。
CREATE VIEW pepes_productos AS
SELECT
IdProducto,
NombreProducto,
IdProveedor,
IdCategoria,
UnidadesEnExistenci,
Suspendido
FROM productos
关于mysql - GRANT USAGE to @user'%' 是否可以为特定列表工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22385913/