Informix的用户权限管理
处处
Informix的用户权限管理
有关数据库的权限
存储在数据库中的数据对于一个商务活动来说是非常重要的。不仅要通过备份和制作日志来保证数据的不丢失,还要通过设置不同的访问权限来防止来自用户的善意的或恶意的破坏。一个公司不可能总是使用一个完全独立的数据库系统来保存雇员的工资信息。工资信息可能是与是保存在通常的数据库中,这样你就不需要两台机器和两个数据库服务软件包。即使你在一台服务中使用了两个完全独立的数据库,针对每个用户确定其访问数据库、数据表以及数据字段的权限还是很必要的。
而目前众多的数据库管理系统总是更习惯于将用户权限的管理完全交给Application来完成。而真正操作数据库的往往是诸如DBA这样的拥有超级权限的数据库用户。我不能说这样的系统就一定会出安全性问题,但是至少这种做法会带来有关安全性的隐患。对于数据库用户权限的设置,绝大多数成熟的数据库都提供了一种大同小异的做法。我们这里以Informix为例,仅仅是因为我在使用Informix时发现网上对于Informix的用户权限设置缺少详实的资料。希望这份文档能对Informix的应用者有所帮助(尽管现在Informix的市场占有率是出奇的低。)
有关我们的系统
我们使用的数据库数据服务器上的操作系统是SCO UNIX 5.05,数据库选用Informix 7.3。由于选用操作系统和数据库的不同,以下的操作可能会用细微的差别。
创建新用户
在我们使用的平台上,Informix的数据库用户对应于UNIX的系统用户,因此创建新用户的过程也就是创建UNIX系统用户的过程,我们可以用root登录后使用如下命令创建三个新的用户:
#useradd mydba
#useradd myuser1
#useradd myuser2
然后使用passwd给这三个用户设置相应的口令,我们可以看到由于我们的useradd命令没有采用完整的格式,因此这三个用户并不能真正用来登录到我们的UNIX主机,而只能作为数据库用户来使用。
数据库级别的用户权限
对于所有的有权使用(这里的有权使用可能意味着该用户只能浏览该数据库中某一数据表的某一字段)该数据库的数据库用户都必须赋予其数据库级别的用户权限。在Informix中,数据库级别的用户权限有三种,按权限的大小依次是connect、resource和DBA。
Connect
这是级别最低的一种数据库级别的用户权限。拥有该权限的用户可以执行select、insert
处处
Informix的用户权限管理
有关数据库的权限
存储在数据库中的数据对于一个商务活动来说是非常重要的。不仅要通过备份和制作日志来保证数据的不丢失,还要通过设置不同的访问权限来防止来自用户的善意的或恶意的破坏。一个公司不可能总是使用一个完全独立的数据库系统来保存雇员的工资信息。工资信息可能是与是保存在通常的数据库中,这样你就不需要两台机器和两个数据库服务软件包。即使你在一台服务中使用了两个完全独立的数据库,针对每个用户确定其访问数据库、数据表以及数据字段的权限还是很必要的。
而目前众多的数据库管理系统总是更习惯于将用户权限的管理完全交给Application来完成。而真正操作数据库的往往是诸如DBA这样的拥有超级权限的数据库用户。我不能说这样的系统就一定会出安全性问题,但是至少这种做法会带来有关安全性的隐患。对于数据库用户权限的设置,绝大多数成熟的数据库都提供了一种大同小异的做法。我们这里以Informix为例,仅仅是因为我在使用Informix时发现网上对于Informix的用户权限设置缺少详实的资料。希望这份文档能对Informix的应用者有所帮助(尽管现在Informix的市场占有率是出奇的低。)
有关我们的系统
我们使用的数据库数据服务器上的操作系统是SCO UNIX 5.05,数据库选用Informix 7.3。由于选用操作系统和数据库的不同,以下的操作可能会用细微的差别。
创建新用户
在我们使用的平台上,Informix的数据库用户对应于UNIX的系统用户,因此创建新用户的过程也就是创建UNIX系统用户的过程,我们可以用root登录后使用如下命令创建三个新的用户:
#useradd mydba
#useradd myuser1
#useradd myuser2
然后使用passwd给这三个用户设置相应的口令,我们可以看到由于我们的useradd命令没有采用完整的格式,因此这三个用户并不能真正用来登录到我们的UNIX主机,而只能作为数据库用户来使用。
数据库级别的用户权限
对于所有的有权使用(这里的有权使用可能意味着该用户只能浏览该数据库中某一数据表的某一字段)该数据库的数据库用户都必须赋予其数据库级别的用户权限。在Informix中,数据库级别的用户权限有三种,按权限的大小依次是connect、resource和DBA。
Connect
这是级别最低的一种数据库级别的用户权限。拥有该权限的用户可以执行select、insert