Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1565858
  • 博文数量: 201
  • 博客积分: 2812
  • 博客等级: 少校
  • 技术积分: 3029
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-18 18:28
个人简介

从事数据库工作多年,目前看好分布式NeSQL/HTAP数据库在企业客户市场的发展。未来的主要方向是——致力于 NewSQL/HTAP 数据库的推广普及。

文章存档

2016年(1)

2015年(8)

2014年(23)

2013年(50)

2012年(32)

2011年(87)

分类: Sybase

2012-11-15 16:34:38

   我们在开发应用时可能会遇到这样的问题:B用户可能需要访问A用户创建的表。大家可能要问,这种情况很常见呀,有什么可说的呢?
   其实在IQ数据库中,为了让B用户能够访问A用户创建的表,只需要A用户或DBA用户授予B用户相应的对象权限即可,比较简单。但是在缺省情况下,B用户访问时需要加上对象的属主名才行。在IQ中,如何能做到不加属主名就可访问呢?下面就结合一个例子来说明如何实现。
   先简单说明一下例子的情况:
     (1) 用户gdpuser创建了一个表叫做test1,然后往里面插入一些数据
     (2) 用户gdpuser把test1表上的所有访问权限授予用户armyuser
     (3) 在授权之后,用户armyuser就能够通过select * from gdpuser.test1查询表的数据了
     (4) 假设armyuser希望使用select * from test1这样的方式访问test1表。 
  
 
   下面是实现的具体步骤和方法:
 
 --1. 用DBA用户登录,执行下面语句创建用户
 sp_addlogin 'gdpuser','111111'
 grant resource to gdpuser
 sp_addlogin 'armyuser','111111'
 grant resource to armyuser
 
 --2. gdpuser 创建test1表
 create table test1(id int,name char(8))
 insert into test1 values(1,'aaaaaa')
 insert into test1 values(2,'bbbbbb')
 commit
 
 --3. gdpuser执行下面命令为armyuser授权
 grant all on test1 to armyuser
 
 --4. armyuser连接到iq server,执行select查询
 select * from test1   --报错, Table 'test1' not found
 select * from gdpuser.test1 --OK
 
 --5. 用DBA用户登录iq,执行下面的语句(这两句是关键)
 grant group to gdpuser
 grant membership in group gdpuser to armyuser
 
 --6. 用armyuser登录iq server,执行下面语句
 select * from test1  --这回执行成功,不用加用户前缀gdpuser了。
阅读(2945) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~