用户的权限分为3类:
l 登录的权限;
l 访问特定数据库的权限;
l 在数据库中具体的对象上执行特定操作的权限。

用户分为 服务器登陆与数据库用户,两者进行关联
角色分为:
服务器角色(固有,不可删改,不可增加自定义);
数据库角色(固有,不可删改、可增加自定义角色);

查询所有用户:

select * from sysusers;(数据库用户)

select * from master.dbo.syslogins;(登陆用户)

查询账户信息;

sp_helplogins 'TestAccount';

添加一个用户:

方法一:

exec sp_addlogin 'test','123' ;--//创建一个登录帐号
execute sp_addgroup 'testgroup' ;--//创建一个组
execute sp_adduser 'test','123','testgroup';--//把帐号添加到组中

方法二:

-- 添加服务器登陆 
EXEC master.dbo.sp_addlogin @loginame = N'logintest', @passwd = '111', 
@defdb = N'DBTEST', @deflanguage = N'简体中文'

--设置登陆的角色
EXEC master..sp_addsrvrolemember @loginame = N'logintest', @rolename = N'sysadmin'
GO

--一个登陆
--可以在多个数据库上创建用户
--但不能在一个数据库上创建多个用户
--为登录 logintest 在数据库 dbtest 中添加安全账户 usertest
use dbtest
go
EXEC dbo.sp_grantdbaccess @loginame = N'logintest', @name_in_db = N'usertest'

-- 为用户设置数据库角色
-- sp_addrole可以添加自定义的数据库角色
EXEC sp_addrolemember N'db_datareader', N'usertest'
GO
EXEC sp_addrolemember N'db_datawriter', N'usertest'
GO
--以上设置用户logintest只能登陆dbtest数据库,但是我们却可以访问master,pubs等数据库
--这是因为,那些数据库里有个guest用户,guest用户可以与没有设置用户的登陆名关联
--即logintest在master库上没有设置关联用户,就使用了guest用户

-- 删除数据库用户 ,删除登陆前必须删除登陆的所有数据库用户
IF EXISTS (SELECT * FROM dbo.sysusers WHERE name = N'usertest')
EXEC dbo.sp_revokedbaccess N'usertest'
go

-- 删除登录 ,删除登陆前必须删除登陆的所有数据库用户
IF EXISTS (SELECT * FROM master.dbo.syslogins WHERE name = N'logintest')
EXEC master.dbo.sp_droplogin @loginame = N'logintest'
go

----自定义角色的做法
--创建角色 r_test
EXEC sp_addrole 'r_test'

--授予角色 r_test 对 jobs 表的所有权限
GRANT ALL ON jobs TO r_test
--授予角色 r_test 对 titles 表的 SELECT 权限
GRANT SELECT ON titles TO r_test

--添加登录 l_test,设置密码为pwd,默认数据库为pubs
EXEC sp_addlogin 'l_test','pwd','pubs'

--为登录 l_test 在数据库 pubs 中添加安全账户 u_test
EXEC sp_grantdbaccess 'l_test','u_test'

--添加 u_test 为角色 r_test 的成员
EXEC sp_addrolemember 'r_test','u_test'

--拒绝安全账户 u_test 对 titles 表的 SELECT 权限
DENY SELECT ON titles TO u_test

/*--完成上述步骤后,用 l_test 登录,可以对jobs表进行所有操作,但无法对titles表查询,虽然角色 r_test 有titles表的select权限,但已经在安全账户中明确拒绝了对titles的select权限,所以l_test无titles表的select权限--*/

--从数据库 pubs 中删除安全账户
EXEC sp_revokedbaccess 'u_test'

--删除登录 l_test
EXEC sp_droplogin 'l_test'

--删除角色 r_test
EXEC sp_droprole 'r_test'

---------------------------------
--sql server 2005里可以有create用法
USE [master]
GO
CREATE LOGIN [logintest] WITH PASSWORD=N'111111', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
GO
USE [db]
GO
CREATE USER [logintest] FOR LOGIN [logintest]
GO
USE [db]
GO
EXEC sp_addrolemember N'db_denydatareader', N'logintest'
GO
USE [db]
GO
EXEC sp_addrolemember N'db_denydatawriter', N'logintest'
GO
--服务器角色

添加系统管理员:

master.dbo.xp_cmdshell' net user liujiayu 123456 /add ';

master.dbo.xp_cmdshell' net localgroup administrators liujiayu /add

出现错误执行:

;EXEC sp_configure 'show advanced options', 1 --

;RECONFIGURE WITH OVERRIDE --

;EXEC sp_configure 'xp_cmdshell', 1 --

;RECONFIGURE WITH OVERRIDE --

;EXEC sp_configure   'show advanced options', 0 --

各种错误的总结:

grant 关键字 'to' 附近有语法错误

sql server 2005 开发版

输入语句

grant select
on table person
to ma

消息:消息 156,级别 15,状态 1,第 3 行
关键字 'to' 附近有语法错误。

正解:

grant select
on person
to ma

SQLServer权限相关推荐

  1. 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】05、Shiro集成

    1.POM文件中加入Shiro和fastJSON依赖 <dependency><groupId>org.apache.shiro</groupId><arti ...

  2. 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】04、统一处理异常...

    本节讨论如何使用Spring的异常处理机制,当我们程序出现错误时,以相同的一种格式,把错误信息返回给客户端 1.创建一些自定义异常 public class TipsException extends ...

  3. discuz!nt论坛搬迁后出错,提示:对象名 'dnt_templates' 无效

    2007年10月30日 星期二 16:23 对象名 'dnt_templates' 无效解决方法: --解决重装系统并还原论坛数据库后,数据库帐号不关联的问题. --注意请用sa帐号 进行如下操作 - ...

  4. SQL Server应用程序中的高级SQL注入

    作者:不详 来源:techtarget http://www.csai.cn 2006年5月11日 摘要:这份文档是详细讨论SQL注入技术,它适应于比较流行的IIS+ASP+SQLSERVER平台.它 ...

  5. SQL Server应用程序中的高级SQL注入[转]

    SQL Server应用程序中的高级SQL注入[从A.Z的POST里转载,经过整理] 作者:Chris Anley[chris@ngssoftware.com] An NGSSoftware Insi ...

  6. 渗透测试-注入攻击专题

    渗透测试- 注入 Neo4j ACCESS ORM注入 SSTI 服务器端模板注入(Server-Side Template Injection) 万能密码 漏洞介绍 测试方法 sql手工注入 @ap ...

  7. pythonDjango后端笔记

    文章目录 软件开发架构 纯手撸web框架 借助于wsgiref模块 动静态网页 模块语法之Jinja2模块 自定义简易版本web框架请求中各个模块的作用 python3大主流web框架 注意事项 Dj ...

  8. sqlserver 新建只读权限用户

    1,新建只能访问某一个表的只读用户. --添加只允许访问指定表的用户: execsp_addlogin'用户名','密码','默认数据库名' --添加到数据库 execsp_grantdbaccess ...

  9. SQLServer · 最佳实践 · RDS for SQL Server 2012 权限限制的提升与改善

    title: SQLServer · 最佳实践 · RDS for SQL Server 2012 权限限制的提升与改善 author: 石沫 背景 SQL Server 作为一种强大的关系型数据库, ...

最新文章

  1. Xilinx Axi Dma Userspace模式下 寄存器 +MMAP 测试程序
  2. python astype(float)_Python astype(np.float)函数使用方法解析
  3. 杭电acm2015偶数求和
  4. Ubuntu 下的云笔记Nixnote (Evernote)
  5. 云服务器(uCloud)部署java web项目(二) 安装,配置apache服务器
  6. 用ntdsutil命令中的restore object 更新版本号
  7. spark on yarn 完全分布式_「大数据」(七十一)Spark之架构介绍
  8. maven 构建 springmvc + spring security 权限控制示例
  9. linux 文件指针,Linux中文件描述符fd与文件指针FILE*互相转换实例解析
  10. java解析tcp报文_JAVA语言TCP通信和JDBC示例(AIS信息解析)
  11. squid android 工具包,xUtils Android工具包 v3.9.0
  12. 数据可视化之旅(五):常用图表对比
  13. 深度学习算法:AlphaGo 算法
  14. 猿创征文 | 2022 我的开发者工具
  15. 广州坐标系转换大地2000_实用帖 | 从地方坐标系到2000国家大地坐标系的转换方法...
  16. 国家集训队 矩阵乘法
  17. python 残差图_python 残差
  18. 零点起飞学java web_零点起飞学Java Web开发 (徐林林) 高清PDF扫描版 114M
  19. python:烤地瓜程序
  20. from PyQt6 import QtCore, QtGui, QtWidgets ImportError: DLL load failed while importing QtGui:

热门文章

  1. 通过反射获取成员变量并使用
  2. response对象简介
  3. 响应json数据之过滤静态资源
  4. mybatis 批量将list数据插入到数据库
  5. ios键盘横屏_iOS横竖屏旋转及其基本适配方法 转
  6. 设置二进制或者16/32位的某一位的值
  7. 【学时总结模板时间】◆学时·10 模板·3◆ AC自动机
  8. 用中文传话游戏理解 RNN
  9. linux 压缩及解压缩 命令
  10. C#检查json格式是否合法