研究权限这些东西主要是因为今天正好在折腾数据库备份相关的东西,备份好说,备份完了就完了。

但是恢复备份的时候,需要先让数据库脱机,然后恢复,然后再联机,嗯,问题就出在联机上了。

根据 MSDN 的说法:https://msdn.microsoft.com/zh-cn/library/bb522682.aspx

OFFLINE 只需要拥有本数据库的 ALTER DATABASE 权限,但是 ONLINE 却需要拥有服务器级别的 ALTER ANY DATABASE 权限。

感觉好坑的样子。。。

 

那么服务器默认的几个角色里面,都谁有 ALTER ANY DATABASE 权限呢,为了看这个权限,又看了好多关系不是太大的东西。。。

服务器级别角色:https://msdn.microsoft.com/zh-cn/library/ms188659.aspx

数据库级别角色:https://msdn.microsoft.com/zh-cn/library/ms189121.aspx

这两个网址里面描述的东西就是咱们平时为登陆用户分配权限时见到的几个默认角色的说明。

 

有兴趣的话可以看看,其实主要是现在我还对数据库的权限分配要求不是很严谨,凑合能用就行,本来应该严格的为各个不同权限的用户分配角色权限的。

顺便还查了一下架构到底是什么东西,当然还是没有看太懂就是了,所以就先贴两个链接吧:

SQL SERVER 2005/2008 中关于架构的理解(一):http://www.cnblogs.com/chillsrc/p/3383098.html

SQL SERVER 2005/2008 中关于架构的理解(二):http://www.cnblogs.com/chillsrc/p/3389374.html

感觉有点像程序里的命名空间一样,将数据库里的各个对象都放在不同的架构中,这样方便集中的管理和分配权限什么的,也可以顺便解决重名问题?(仅猜测,未验证)

 

好吧,回到正题,来看看默认的这些角色到底都有啥权限?

对于服务器角色:https://msdn.microsoft.com/zh-cn/library/ms179872.aspx

DECLARE @TEMP TABLE(
role NVARCHAR(128),
permission NVARCHAR(128)
)
INSERT INTO @TEMP EXEC sp_srvrolepermission
SELECT * FROM @TEMP WHERE permission = 'alter database'

嗯,还顺便学习了下怎么利用存储过程的结果。。。要用临时表存储

查到的结果呢,就这俩可以达到我们的要求。还有一个很遗憾的消息,这个方法将于未来被删除,但还没确定在哪个版本删,也不知道接班方法是谁,很坑。。。

对于数据库角色:https://msdn.microsoft.com/zh-cn/library/ms188423.aspx

这个没啥好看的就不看了。

于是呢,这里为了解决联机的问题,把对应的数据库用户赋予dbcreator角色就好咯。。。折腾这么一大圈。。。

(完)

关于 sql server 数据库权限乱七八糟的一些东西的更多相关文章

  1. SQL SERVER数据库权限分配

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

  2. SQL Server 数据库的安全管理(登录、角色、权限)

    ---数据库的安全管理 --登录:SQL Server数据库服务器登录的身份验证模式:1)Windows身份验证.2)Windows和SQL Server混合验证 --角色:分类:1)服务器角色.服务 ...

  3. SQL语句操作SQL SERVER数据库登录名、用户及权限

    要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许连接 SQL Server 服务器的权利: 获得访问特定数据库中数据的权利(select, update, de ...

  4. NetBeans连接SQL server数据库教程

    不废话,直接开始 1.下载sqljdbc.jar 可以从微软中国官方网站下载 SQLJDBC微软中国 笔者提供一个网盘链接Sqljdbc.jar 4个压缩包视版本选择,SQL 2012 用sqljdb ...

  5. SQL SERVER 数据库备份的三种策略及语句

    1.全量数据备份    备份整个数据库,恢复时恢复所有.优点是简单,缺点是数据量太大,非常耗时 全数据库备份因为容易实施,被许多系统优先采用.在一天或一周中预定的时间进行全数据库备份使你不用动什么脑筋 ...

  6. 5、SQL Server数据库、T-SQL

    SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步- ...

  7. C# 以附加文件方式连接SQL Server数据库文件

    string str = @"data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFileName=z:\ttt.mdf;Us ...

  8. 人人都是 DBA(V)SQL Server 数据库文件

    SQL Server 数据库安装后会包含 4 个默认系统数据库:master, model, msdb, tempdb. SELECT [name] ,database_id ,suser_sname ...

  9. SQL Server - 数据库初识

      在互联网笔试中,常遇到数据库的问题,遂来简单总结,注意,以 Sql Server 数据库为例. 数据库 数据库系统,Database System,由数据库和数据库管理系统组成. 数据库,Data ...

随机推荐

  1. 【超精简JS模版库/前端模板库】原理简析 和 XSS防范

    使用jsp.php.asp或者后来的struts等等的朋友,不一定知道什么是模版,但一定很清楚这样的开发方式: <div class="m-carousel"> < ...

  2. Flash Actionscript AS3 渐变透明 mask遮罩

    把图片变成渐变透明(左图是效果图,右图是原图)    var a:Sprite = new Sprite(); a.graphics.beginGradientFill(GradientType.LI ...

  3. 用python导出csv文件

    # coding: utf-8 import csv csvfile = open('csv.csv', 'wb') #打开方式还可以使用file对象 writer = csv.writer(csvf ...

  4. python之函数用法isupper()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法isupper() #http://www.runoob.com/python/att ...

  5. 【转】Jenkins怎么启动和停止服务

    笔者没有把Jenkins配置到tomcat中,每次都是用命令行来启动Jenkins.但是遇到一个问题:Jenkins一直是开着的,想关闭也关闭不了.百度了一些资料,均不靠谱(必须吐槽一下百度).于是进 ...

  6. [Dubbo实战]dubbo + zookeeper + spring 实战 (转)

    这里最熟悉的就是spring了,项目中应用很多.dubbo是一个实现分布式的框架,zookeeper是注册中心.给我的感觉就像多对多关系的两者表,zookeeper相当于第三张表维护关系.下面通过一个 ...

  7. layer.js 弹窗组件API文档

      基础参数 type title content skin area offset icon btn closeBtn shade shadeClose time id shift maxmin f ...

  8. 长按listview弹出选项列表对话框

    Android中通过xml资源文件定义数组.来自微风的网络日志. 文章链接:http://leybreeze.com/blog/?p=1524 Android ListView两种长按弹出菜单方式 h ...

  9. 监听Sms.Content_URI而不是Sms.Inbox.CONTENT_URI

    getContentResolver().registerContentObserver(Sms.Inbox.CONTENT_URI,         true, newMsgObserver); / ...

  10. 【LeetCode】208. Implement Trie (Prefix Tree)

    Implement Trie (Prefix Tree) Implement a trie with insert, search, and startsWith methods. Note:You ...