数据库的唯一权限是什么

数据库的唯一权限是什么,第1张

数据库的权限是指允许特定用户访问特定数据库或数据库表的授权。按照降序范围,数据库的权限主要有三种类型:数据库、系统和对象

1. 数据库权限:

执行特定类型的SQL语句;

访问其他用户的对象;

控制计算资源的使用;

不适用于数据库管理员(DBA)。

2. 系统权限:

对特定类型的对象执行活动,如创建、更改、删除等;

例如,增加或删除某个数据库任何表格的行与列。

3. 对象权限:

对特定表、函数或包执行特定 *** 作的权限;

例如,删除某个表格中的行;

允许用户插入、删除、更新或选择数据库对象中的数据;

对象的所有者拥有该对象的所有对象权限,并且这些权限不能被撤销;

对象的所有者可以将该对象的对象权限授予其他数据库用户;

具有管理员权限的用户可以向用户授予和撤销对象权限,该用户无授予权限的对象。

针对数据库的权限有对应的权限命令,在多用户数据库环境中加强数据库安全。权限命令主要有三个:

1. GRANT命令:提供用户对数据库对象的访问权限,还允许用户向其他用户授予访问权限。该命令的基本语法是:

GRANT SELECT ON <table1>to <user1>授予user1对table1的SELECT *** 作权限

2. REVOKE命令:删除用户对数据库对象的访问权限。该命令的基本语法是:

REVOKE DELETE ON <table1>FROM <user1>删除user1对table1的DELETE *** 作权限

3. DENY命令:拒绝对对象的权限,并阻止主体基于组或角色中的成员身份获得GRANT权限。该命令的基本语法是:

DENY UPDATE ON <table1>to <user1>拒绝user1对table1的UPDATE *** 作权限

建议通过phpMyAdmin

来设置数据库用户的权限。phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。

一、首先您需要在服务器上安装配置

phpMyAdmin。

安装比较复杂,详见http://faq.comsenz.com/viewnews-484

二、创建用户(如之前已经创建好用户,可以省略这一步)

点击“添加新用户”这个连接,添加一个新的数据库用户名;

三、权限设置

编辑刚刚创建的用户的权限(如下图所示)

四、重新加载授权表

修改完用户权限以后需要回到

phpMyAdmin

的首页,重新加载一下授权(如下图)即可。

SQL语言用GRANT语句向用户授予 *** 作权限,GRANT语句的一般格式为:

GRANT <权限>[,<权限>]...

[ON <对象类型><对象名>]

TO <用户>[,<用户>]...

[WITH GRANT OPTION]

其语义为:将对指定 *** 作对象的指定 *** 作权限授予指定的用户。

不同类型的 *** 作对象有不同的 *** 作权限,常见的 *** 作权限如表3-4所示。

表3-4 不同对象类型允许的 *** 作权限

对象 对象类型 *** 作权限

属性列 TABLE SELECT, INSERT, UPDATE, DELETE ALL PRIVIEGES

视图 TABLE SELECT, INSERT, UPDATE, DELETE ALL PRIVIEGES

基本表 TABLE SELECT, INSERT, UPDATE, ALTER, INDEX,DELETE ALL PRIVIEGES

数据库 DATABASE CREATETAB

详细信息…

接受权限的用户可以是一个或多个具体用户,也可以是PUBLIC即全体用户。

如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予别的用户。如果没有指定WITH GRANT OPTION子句,则获得某种权限的用户只能使用该权限,但不能传播该权限。

例1

把查询Student表权限授给用户U1

GRANT SELECT ON TABLE Student TO U1

例2

把对Student表和Course表的全部权限授予用户U2和U3

GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3

例3

把对表SC的查询权限授予所有用户

GRANT SELECT ON TABLE SC TO PUBLIC

例4

把查询Student表和修改学生学号的权限授给用户U4

详细信息…

这里实际上要授予U4用户的是对基本表Student的SELECT权限和对属性列Sno的UPDATE权限。授予关于属性列的权限时必须明确指出相应属性列名。完成本授权 *** 作的SQL语句为:

GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4

例5

把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户

GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION

详细信息…

执行此SQL语句后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限,即由U5用户发上述GRANT命令给其他用户。

例如U5可以将此权限授予U6:

GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION

同样,U6还可以将此权限授予U7:

GRANT INSERT ON TABLE SC TO U7

因为U6未给U7传播的权限,因此U7不能再传播此权限。

例6

DBA把在数据库S_C中建立表的权限授予用户U8

GRANT CREATETAB ON DATABASE S_C TO U8


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6425138.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-22
下一篇 2023-03-22

发表评论

登录后才能评论

评论列表(0条)

保存