如何设置数据库的权限?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置数据库的权限?相关的知识,希望对你有一定的参考价值。

  建议通过phpMyAdmin
来设置数据库用户的权限。phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的mysql的数据库管理工具,让管理者可用Web接口管理MySQL数据库。
  一、首先您需要在服务器上安装配置
phpMyAdmin。
  安装比较复杂,详见http://faq.comsenz.com/viewnews-484
  二、创建用户(如之前已经创建好用户,可以省略这一步)
  点击“添加新用户”这个连接,添加一个新的数据库用户名;
  三、权限设置
  编辑刚刚创建的用户的权限(如下图所示)
  四、重新加载授权表
  修改完用户权限以后需要回到
phpMyAdmin
的首页,重新加载一下授权(如下图)即可。

参考技术A 一、必要性
随着近年来数据库技术的深入发展,以Unix平台为代表的Informix Dynamic Server和以NT平台为代表的MS SQL Server得到了广泛的应用。在一个公共的环境中,存在大量的用户操作,有数据库管理员,主要做数据管理维护工作,也有普通用户,做一定授权下的数据修改和数据查询。我们知道,每个数据库服务器上可建立多个不同类别的数据库,而每个数据库中也可以生成多个存储过程、表、视图等。如何保证数据的安全可靠,防止非法存取所造成的破坏和数据泄露,如何进行权限的划分和设置,这是安全管理的重点,也是数据库可靠运行的保证。本文以Informix Dynamic Server为例做详细说明。 二、权限的划分
Informix Dynamic Server使用了三级权限来保证数据的安全性,它们分别是数据库级权限、表级权限和字段级权限,具体为:
1.数据库级权限
包括Connect、Resource、DBA三种类别,其中:

Connect: 最低级,仅允许用户访问数据库中的表和索引,但不能创建和删除它们;
Resource: 建立在Connect之上,允许用户在数据库中创建、删除表和索引;
DBA: 即数据库管理员,拥有数据库管理的全部权限,包括访问数据库表、创建和删除索引、修改表结构、授予数据库权限给其他用户等。

2.表/字段(视图)级权限
指允许进行何种具体操作,主要包括:

Select: 从表或字段中检索信息;
Update: 修改指定字段的值;
Insert: 向数据库表中添加记录;
Delete: 从数据库表中删除记录;
Index: 为一个数据库表创建索引;
Alter: 增加、删除数据库表中的字段,或修改字段的数据类型;
All: 以上所有权限。

三、权限的设置
Informix Dynamic Server通过一系列SQL控制语句来实施对用户权限的设置,使得不同的用户只能在各自限定的范围内存取数据。以下命令格式中Grant表示授予权限,Revoke表示撤消权限,User-List指用户名列表,多个用户以逗号(,)分隔,对大多数数据库系统而言,PUBLIC代表所有用户。

1.对于数据库,其格式为:
Revoke DBA | Resource | Connect from PUBLIC | User-List
Revoke DBA | Resource | Connect from PUBLIC | User-List
缺省情况下,建立数据库的用户就是数据库管理员(DBA),除其本身和Informix用户外,其它用户不对该数据库拥有任何权限,因此也就不能进行任何形式的访问。数据库管理员可根据其他用户的业务分工、操作范围授予或撤消DBA、Resource、Connect三种不同的权限。

2.对于表及视图,其格式为:
Revoke TAB-PRI on [ tab_name | view_name ] from PUBLIC | User-List
Revoke TAB-PRI on [ tab_name | view_name ] from PUBLIC | User-List
其中TAB_PRI表示select、update、delete等操作权限,tab_name、 view_name分别代表数据库表名和视图名。

缺省情况下,新建的

如何设置sybase数据库的用户权限

如何设置sybase数据库的用户权限,例如登录权限,delete操作权限等等。

参考技术A sybase数据库的用户,包含两个层面:一个是登陆号,另一个是具体DB的用户,我们登陆时,使用的是登录号,但是这个登录号可以操作哪些DB及操作权限则取决于数据库用户。一般情况下,我们可以采取相同的名字来表示登录号和数据库用户。
首先创建一个登陆号:
sp_addlogin
loginame,
passwd
loginame
登录名
passwd
密码
全部语法(一般不用到)为:
sp_addlogin
loginame,
passwd
[,
defdb]
[,
deflanguage
]
[,
fullname
]
[,
passwdexp
]
[,
minpwdlen
]
[,
maxfailedlogins
]
然后创建用户:
sp_adduser
loginame
这样创建当前数据库的用户,且用户名和登陆名是一样的。
全部语法为:
[dbname..]sp_adduser
loginame
[,
username[,
grpname]]
最后分配权限:
grant
all
|
select,insert,delete,update
on
table_name
|
view_name
|
stored_procedure_name
to
username

grant
all
|
create
database,create
default,create
procedure,create
rule,create
table,create
view,set
proxy,set
session
authorization
to
username
例,假如当前DB为:DB001:
sp_addlogin
'test001','password001'
go
sp_adduser
'test001',
'user001'
go
grant
create
table
to
user001
go
创建了一个test001的登录名,之后为之创建一个当前数据库的用户,使这个登录名可以操作当前数据库。之后分配了创建表的权限给user001。
这个时候你就可以使用用户名'test001'和密码'password001'登陆了,并且可以在DB001中创建表了。同时由于sp_adduser
的时候没有指定grpname参数,那么默认是public用户组,这个组里的用户默认即开通了select/delete/update/insert的权限。
如果你希望去掉一些权限,请使用revoke命令,其语法了grant完全相同,你只需要将grant换成revoke即可,例:
revoke
select
on
address
to
user001
禁止user001查看address表。

以上是关于如何设置数据库的权限?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Oracle数据库中设置权限

如何设置MSSQL数据库访问用户及访问权限

如何设置sybase数据库的用户权限

如何设置sybase数据库的用户权限

如何设置mysql的权限为所有的用户权限

security可以针对用户设置只读权限吗