日期:2014-05-17  浏览次数:20709 次

sql2005用户权限问题
新建一个用户,要求这个用户只有某个指定数据库的多个表的查询权限,只能select这个数据库下面的多个表,不能
对这些表里面的数据进行修改或者删除,也不能有其他的管理权限,只有查询,该怎么设置?

------解决方案--------------------
新建用户并授权

新建帐户appuser,密码为163.com,并允许该用户对appdb数据库的test表有select,insert,update权限,那么依次执行
exec sp_addlogin 'appuser','163.com','TEST' 
go 

use TEST 
exec sp_grantdbaccess 'appuser' 
go 

use TEST 
grant select
on test 
to appuser 
go

 

---如果还要添加角色db_owner,  那么

USE test;
exec sp_addrolemember 'db_owner', 'test'
go

------解决方案--------------------
引用:
新建用户并授权

新建帐户appuser,密码为163.com,并允许该用户对appdb数据库的test表有select,insert,update权限,那么依次执行
exec sp_addlogin 'appuser','163.com','TEST' 
go 

use TEST 
exec sp_grantdbaccess 'appuser' 
go 

use TEST 
grant select
on test 
to appuser 
go

 

---如果还要添加角色db_owner,  那么

USE test;
exec sp_addrolemember 'db_owner', 'test'
go

---如果还要添加角色db_owner,  那么
 
USE test;
exec sp_addrolemember 'db_owner', 'test'
go

这个就不用了 如果执行了这句前面的没用啦
------解决方案--------------------

--drop login ggg


--创建登录名
create login ggg  
with password = '123',  --在第一次登录时会提示修改密码  
       
     check_expiration = off,   --不对sql登录名强制实施密码过期策略  
     check_policy = off        --不把Windows密码策略应用到sql登录名上  


use 限制访问的数据库
go

--创建数据库用户
create user your_user
for login ggg   --把数据库用户名挂到登录名上

grant select on 表1 to your_user

grant select on 表2 to your_user

------解决方案--------------------

-- 打开master数据库
use master

-- 建立登录名
create login [登录名]
 with password=N'[密码]', 
      default_database=[默认数据库名], 
      check_expiration=off, 
      check_policy=off

-- 打开默认数据库
use [默认数据库名]

-- 建立数据库用户,映射登录名.
create user [用户名] for login [登录名]

-- 授予表查询权限给用户
grant select on [表名] to [用户名]