--创建角色 EXEC sp_addrole @RoleName --授予数据库中所有用户表查询权限给某一个角色 declare @UserTablename varchar(20) Declare Cur Cursor For select Name from sysobjects where xtype='u' and status>=0 declare @SQL Varchar(200) Open Cur Fetch Cur Into @UserTablename While @@FETCH_STATUS=0 BEGIN Set @sql='GRANT SELECT ON '+@UserTablename+' TO '+@RoleName+'' Exec(@sql) Fetch Cur Into @UserTablename End Close Cur Deallocate cur --添加登录,设置密码,默认数据库 EXEC sp_addlogin @LoginUserName,@LoginUserPwd,@DbName --为登录在数据库中添加安全账户 EXEC sp_grantdbaccess @LoginUserName,@SafeAccount --添加安全帐户为角色的成员 EXEC sp_addrolemember @RoleName,@SafeAccount
EXEC sp_addrole @RoleName
--授予数据库中所有用户表查询权限给某一个角色
declare @UserTablename varchar(20)
Declare Cur Cursor For
select Name from sysobjects where xtype='u' and status>=0
declare @SQL Varchar(200)
Open Cur
Fetch Cur Into @UserTablename
While @@FETCH_STATUS=0
BEGIN
Set @sql='GRANT SELECT ON '+@UserTablename+' TO '+@RoleName+''
Exec(@sql)
Fetch Cur Into @UserTablename
End
Close Cur
Deallocate cur
--添加登录,设置密码,默认数据库
EXEC sp_addlogin @LoginUserName,@LoginUserPwd,@DbName
--为登录在数据库中添加安全账户
EXEC sp_grantdbaccess @LoginUserName,@SafeAccount
--添加安全帐户为角色的成员
EXEC sp_addrolemember @RoleName,@SafeAccount
我原来是这样操作的在企业管理器中
在某个数据库(如"officedb"中新建角色(限制了某些数据表的访问),然后在服务器的安全性的登录中新建登录用户,服务器角色为空,指定访问数据库我只选定了"officedb",但是我在vb中用这个新建登录用户连接sql,连接后在officedb中对这个用户的限制有效(比如只能访问指定数据表),但是仍能正常访问其他数据库,这是怎么回事?