首页数据库数据库授权(怎样通过在数据库中的表来定义权限和授权)

数据库授权(怎样通过在数据库中的表来定义权限和授权)

编程之家2023-10-22199次浏览

大家好,今天给各位分享数据库授权的一些知识,其中也会对怎样通过在数据库中的表来定义权限和授权进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

数据库授权(怎样通过在数据库中的表来定义权限和授权)

数据库的唯一权限是什么

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

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操作权限

如何设置数据库的权限

1、首先用管理员进入数据库级中的安全性,点击登录名,点击新建登录名。

2、在界面中,创建登录名,并设置默认的数据库的密码。

3、然后勾选需要设置的数据库,完成创建。

4、然后就可以对数据库中的User表进行权限的设置了,右键“属性”。

5、依次点击“添加”,浏览”,“选择对象”。

6、然后就可以下面的列表中找到对应的权限授予进行设置。

怎样通过在数据库中的表来定义权限和授权

权限管理,最简单的就是两个表,一个权限表,就是权限字段

再有一个是授权表就是用户、权限

通过一个界面,把用户能拥有的权限通过挑勾等方式选上,然后加入到授权表中

运行程序功能时,判断该用户对应权限在授权表中有没有记录,没有说明没权限,给个提示,退出这个功能,有记录就正常使用

通过这种方式,可以进行按钮级授权、菜单级授权

更细致的字段级也能做,只不过数据就太多了,最好不用这种结构

mysql怎么授予创建数据库的权限

MySQL命令行能否实现新建用户呢?答案无疑是肯定的。而且在使用使用MySQL命令行新建用户后,还可以为用户授予权限。

首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。

注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。

用户:phplamp

用户数据库:phplampDB

1.MySQL命令行新建用户

//登录MYSQL

@>mysql-u root-p

@>密码

//创建用户

mysql> insert into mysql.user(Host,User,Password) values('localhost','phplamp',password('1234'));

//刷新系统权限表

mysql>flush privileges;

这样就创建了一个名为:phplamp密码为:1234的用户。

//退出后登录一下

mysql>exit;

@>mysql-u phplamp-p

@>输入密码

mysql>登录成功

2.MySQL命令行为用户授权

//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.

@>mysql-u root-p

@>密码

//首先为用户创建一个数据库(phplampDB)

mysql>create database phplampDB;

//授权phplamp用户拥有phplamp数据库的所有权限

@>grant all privileges on phplampDB.* to phplamp@localhost identified by'1234';//这里需要注意,如果发现找不到用户,需要执行命令 flush privilieges;

//刷新系统权限表

mysql>flush privileges;

mysql>其它操作

//如果想指定部分权限给一用户,可以这样来写:

mysql>grant select,update on phplampDB.* to phplamp@localhost identified by'1234';

//刷新系统权限表。

mysql>flush privileges;

mysql> grant权限1,权限2,…权限n on数据库名称.表名称 to用户名@用户地址 identified by‘连接口令’;

权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。

当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。

当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。

用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。

‘连接口令’不能为空,否则创建失败。

例如:

mysql>grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by‘123′;

给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by‘123′;

给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。

mysql>grant all privileges on*.* to joe@10.163.225.87 identified by‘123′;

给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

mysql>grant all privileges on*.* to joe@localhost identified by‘123′;

给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

好了,文章到此结束,希望可以帮助到大家。

realm 数据库?单realm的作用和多realm的区别接口服务器,什么是接口服务器