其实新建了账号之后,就具有了public角色,先要有服务器角色,数据库角色才有意义,这里你可以先不管,只需要把账号的默认数据库指定就可以了,修改默认数据库: USE [master] GO ALTER LOGIN [test] WITH DEFAULT_DATABASE=[AdventureWorks], DEFAULT_LANGUAGE=[简体中文], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON GO
今天早上我换了另一种方法来处理,添加角色,授权给角色,再把用户加到角色中。不知道这个有什么缺点,只是知道这个用户只有查询目标数据库视图的权限,但是可以查询master一些表的权限use DBtest --当前数据库创建角色 exec sp_addrole 'rTest' --分配视图权限 GRANT SELECT ON veiw TO [角色] GRANT SELECT ON V_Test TO rTestgo --添加只允许访问指定视图的用户: exec sp_addlogin '登录名','密码','默认数据库名' exec sp_addlogin 'test','test','DBtest' go --添加只允许访问指定视图的用户到rCRM角色中: exec sp_adduser '登录名','用户名','角色' exec sp_adduser 'test','test','rTest' -----------------
use 数据库 go --建立登录用户:用户名,密码,数据库 exec sp_addlogin 'bcuser','bcuser','数据库' --创建角色golden exec sp_addrole 'golden' --授予角色golden 对数据库的select 权限 grant select to golden --为bcuser 添加安全帐户 exec sp_grantdbaccess 'bcuser','u_bcuser' --添加 u_sm角色golden 的成员 exec sp_addrolemember 'golden','u_bcuser' go
USE [master]
GO
ALTER LOGIN [test] WITH DEFAULT_DATABASE=[AdventureWorks], DEFAULT_LANGUAGE=[简体中文], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
GO
--------------
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'LOGIN' 附近有语法错误。
--当前数据库创建角色
exec sp_addrole 'rTest'
--分配视图权限 GRANT SELECT ON veiw TO [角色]
GRANT SELECT ON V_Test TO rTestgo
--添加只允许访问指定视图的用户: exec sp_addlogin '登录名','密码','默认数据库名'
exec sp_addlogin 'test','test','DBtest'
go
--添加只允许访问指定视图的用户到rCRM角色中: exec sp_adduser '登录名','用户名','角色'
exec sp_adduser 'test','test','rTest' -----------------
这个登录用户只有查询目标数据库视图的权限,但是可以查询master一些表的权限
go
--建立登录用户:用户名,密码,数据库
exec sp_addlogin 'bcuser','bcuser','数据库'
--创建角色golden
exec sp_addrole 'golden'
--授予角色golden 对数据库的select 权限
grant select to golden
--为bcuser 添加安全帐户
exec sp_grantdbaccess 'bcuser','u_bcuser'
--添加 u_sm角色golden 的成员
exec sp_addrolemember 'golden','u_bcuser'
go