MSSQL 创建用户和权限简单操作
2016-03-21 11:25
351 查看
-- 创建登陆,无密码策略,密码不过期 CREATE LOGIN [test_l] WITH PASSWORD='pwd1213',DEFAULT_DATABASE=[db_1], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF; GO USE db_1; GO -- 创建用户 CREATE USER [test_u] FROM LOGIN [test_l]; GO -- 授权 GRANT SELECT ON dbo.table1 TO [test_u]; GO
下边是查看授权信息
--查看 SQL 2008 用户所属数据库角色 use yourdb go select DbRole = g.name, MemberName = u.name, MemberSID = u.sid from sys.database_principals u, sys.database_principals g, sys.database_role_members m where g.principal_id = m.role_principal_id and u.principal_id = m.member_principal_id order by 1, 2 go --查看 SQL 2005 登陆帐户所属服务器角色 use master go select SrvRole = g.name, MemberName = u.name, MemberSID = u.sid from sys.server_principals u, sys.server_principals g, sys.server_role_members m where g.principal_id = m.role_principal_id and u.principal_id = m.member_principal_id order by 1, 2 go -- 查看 SQL 2005 用户被赋予的权限 use yourdb go exec sp_helprotect @username = 'gelong' go --用户或角色在数据库中的授权信息 select b.id,b.name as tName,b.type,a.uid,c.name as uName,a.action,a.protecttype,a.columns from sysprotects a inner join sysobjects b on a.id = b.id inner join sysusers c on a.uid = c.uid WHERE A.UID > 0 --或 select OBJECT_NAME(A.id) as tName,a.uid,c.name as uName,a.action,a.protecttype, a.columns from sysprotects a inner join sysusers c on a.uid = c.uid WHERE A.UID > 0 --或 select b.name as tName,c.name as objname, CASE b.type WHEN 'U' THEN 'Table' WHEN 'P' THEN 'SP' ELSE 'OTHER' END AS TYPE, CASE WHEN a.ACTION = 26 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'REFERENCES', CASE WHEN a.ACTION = 193 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'SELECT', CASE WHEN a.ACTION = 195 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'INSERT', CASE WHEN a.ACTION = 197 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'UPDATE', CASE WHEN a.ACTION = 196 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'DELETE', CASE WHEN a.ACTION = 224 AND a.PROTECTTYPE = 205 THEN '√' ELSE '' END AS 'EXECUTE', CASE a.PROTECTTYPE WHEN 204 THEN 'GRANT_W_GRANT ' WHEN 205 THEN 'GRANT' WHEN 206 THEN 'DENY' ELSE 'OTHER' --当有other出现的时候,需要将其他的PROTECTTYPE添加进去。 END AS PROTECTTYPE from sysprotects a inner join sysobjects b on a.id = b.id inner join sysusers c on a.uid = c.uid WHERE c.name in ('gelong') order by tname; -- 授权信息 select 'GRANT '+ CASE a.ACTION WHEN 26 THEN 'REFERENCES' WHEN 193 THEN 'SELECT' WHEN 195 THEN 'INSERT' WHEN 196 THEN 'DELETE' WHEN 197 THEN 'UPDATE' WHEN 224 THEN 'EXECUTE' ELSE 'OTHER' --当有other出现的时候,需要将其他的ACTION类型添加进去。 END +' ON '+ b.name +' TO '+ c.name from sysprotects a(nolock) inner join sysobjects b(nolock) on a.id = b.id inner join sysusers c (nolock)on a.uid = c.uid WHERE A.UID > 0
相关文章推荐
- MySQL 5.6 for Windows 配置安装
- Linux 下安装 Mongodb
- mysql使用触发器实现check约束功能
- Linux Redis安装
- windows下修改memcached服务的端口号
- sql学习之CASE WHEN THEN ELSE END的用法
- mysql从.frm和.ibd文件恢复数据库
- SQL 2008清空日志
- MySQL中的各种引擎
- MySQL中比like语句更高效的写法locate position instr find_in_set
- Dede 不用登陆后台直接进入数据库恢复界面
- CDH5.1.0 HIVE mysql 配置远程元数据库
- dede数据库类使用方法 $dsql
- mac配置本地环境,用brew下载redis及apache,实现手机访问本地网页
- mysql 中的varchar255 uft-8 的格式到底能放多少汉字
- 数据库
- DedeCMS下data日志mysql_error_trace.inc暴露后台地址
- mysql函数大全
- 浅谈开启magic_quote_gpc后的sql注入攻击与防范
- 预防数据库攻击的正确做法: