mikebai.com

  • Home
  • dev
  • DotNET
  • M365
  • 搞笑
  • 杂七杂八
  • FocusDict
dev
dev

服务器和数据库角色

在7.0版之前,SQL Server有过组的概念——这是用户权限的分组,你只需简单地把用户分配到组中,就能一次指派所有这些权限。这里的组与Windows中的组起作用的方式有很大不同,用户能够属于多个Windows组,因此,可以根据需要混合搭配它们。在SQL Server 6.5(和更早的版本)中,每一个数据库里,一个用户只允许属于一个组。 SQL Server 7.0之前版本的这种方式产生的后遗症是,SQL Server组属于以下3类之一: l    经常根据用户级别的许可权限对它们进行修改; l    它们只是主要的组的微小变形; l    它们拥有多于所需的访问权限(以便使DBA的工作更为轻松)。 基本上,它们虽然很有必要,但同时也是一个很大的麻烦。 伴随7.0版的出现,在这方面发生了一些很大的变化。现在,用户属于一个角色,而非一个组。在最一般的意义上,角色与组是相同的事物。 角色是一组访问权限的集合,通过简单地把用户分配到那个角色中,就能将这一组访问权限一起指派给用户。 在这里,相似之处逐渐消失。使用角色时,用户能够一次属于多个角色。由于能够把访问权限组织到更小的和更合理的组中,然后把它们混合搭配为最适合用户的规则,这简直令人难以置信的便利。 角色分为两类: l    服务器角色; l    数据库角色。 很快,我们还将看到第三种称为角色的事物——应用程序角色,尽管我希望微软选用另外的名字。这是一种特殊的方式,用来把用户化名到不同的许可权限组中。应用程序角色不是分配用户的,它是一种让应用程序拥有的权限集不同于来自用户的权限集的方法。由于这个原因,我通常不认为应用程序角色是真正意义上的“角色”。 服务器角色限制在那些当发布SQL Server时就已经建立于其中的角色,并且,它在这里主要是为了进行系统的维护以及授予完成非数据库特有的事情的能力,如创建登录账户和创建链接服务器。 与服务器角色很类似,这里有一定数目的内置(或“固定”)数据库角色,不过,你也可以定义自己的数据库角色,以满足你独特的需求。数据库角色用来进行设置,以及在一个给定的数据库中分组特定的用户权限。 接下来,我们分别来看这两种类型的角色。 6.4.1  服务器角色 所有的服务器角色都是“固定的”角色,并且,从一开始就存在于那里——自安装完SQL Server的那一刻起,你将拥有的所有服务器角色就已经存在了。 角  色 特  性 sysadmin

2009-09-28 0comments 124hotness 0likes mikebai Read all
dev

SQL Server 2005的服务器角色(public)的问题

SQL Server 默认会有9个服务器角色,而且这些角色是不能删除和新增、修改的。关于这些角色相关介绍和权限,请参考 其中有一个特殊的角色public,任何登录都会属于该角色,它只拥有的权限是VIEW ANY DATABASE 本文并不是为了介绍这些角色,而是提醒你,如果你在服务器角色中没有看到public,那么很可能是因为你没有安装sql server的最新补丁包(sql server 2005 sp2)的问题。(这是今天确认的一个问题) http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=AE7387C3-348C-4FAA-8AE5-949FDFBE59C4&displaylang=zh-cn#filelist

2009-09-28 0comments 122hotness 0likes mikebai Read all
dev

SQL Server 2005 书籍资源list

http://www.codefans.net/soft/4011.shtml http://www.softii.com/downinfo/39460.html  

2009-09-28 0comments 107hotness 0likes mikebai Read all
dev

sqlserver2005用户权限设置

  关于什么是用户权限,最简单的定义可能是,“用户能做什么和不能做什么。”在这里,简单的定义就相当不错了。 用户的权限分为3类: l    登录的权限; l    访问特定数据库的权限; l    在数据库中具体的对象上执行特定操作的权限。 既然我们已经看过了创建登录账户,这里将把重点放在登录账户能够拥有的特定权限上。 22.3.1  授予访问特定数据库的权限 如果想要一个用户可以访问数据库,你需要做的第一件事情是授予用户访问那个数据库的权限。可以在Management Studio中,通过把用户加入到服务器的数据库结点的用户成员中来实现。如果要用T-SQL来添加用户,需要使用CREATE USER或遗留的存储过程sp_grantdbaccess。 注意,当你在数据库中CREATE一个用户时,实际上,那些许可权限被存储在数据库中,并映射到那个用户的服务器标识符上。当还原数据库时,可能不得不在还原数据库的地方,重新把用户权限映射到服务器标识符。 1.CREATE USER CREATE USER命令把新用户添加到数据库中。用户可以源自现有的登录名、证书或非对称密钥,用户也可以是只能在当前数据库中的本地用户。其语法如下: CREATE USER <用户名> [ { { FOR | FROM } { LOGIN <登录名> | CERTIFICATE <证书名> | ASYMMETRIC KEY <密钥名> } | WITHOUT LOGIN ] [ WITH DEFAULT_SCHEMA = <模式名> ] 对于这些元素,我们概略看一下其中一些元素的含义是什么: 选  项

2009-09-27 0comments 111hotness 0likes mikebai Read all
dev

数据库权限设置

要控制对数据库的权限, 可以参考下面的: -- 防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限) --切换到你新增的用户要控制的数据库 use 你的库名 go --新增用户 exec sp_addlogin 'test' --添加登录 exec sp_grantdbaccess N'test' --使其成为当前数据库的合法用户 exec sp_addrolemember N'db_owner', N'test' --授予对自己数据库的所有权限 --这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表 go --删除测试用户 exec sp_revokedbaccess N'test' --移除对数据库的访问权限 exec sp_droplogin N'test' --删除登录 如果在企业管理器中创建的话,就用: 企业管理器--安全性--右键登录--新建登录 常规项 --名称中输入用户名 --身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户) --默认设置中,选择你新建的用户要访问的数据库名 服务器角色项 这个里面不要选择任何东西 数据库访问项 勾选你创建的用户需要访问的数据库名 数据库角色中允许,勾选"public","db_ownew" 确定,这样建好的用户与上面语句建立的用户一样 --------------------------------------------------------------------------- 最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例: --添加只允许访问指定表的用户: exec sp_addlogin '用户名','密码','默认数据库名' --添加到数据库 exec sp_grantdbaccess '用户名' --分配整表权限 GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名] --分配权限到具体的列 GRANT SELECT , UPDATE ON table1(id,AA) TO [用户名] -------------------------------------------------------------------笔记2------------------------------------------------------------------- 创建角色,用户,权限 /*--示例说明         示例在数据库pubs中创建一个拥有表jobs的所有权限、拥有表titles的SELECT权限的角色r_test     随后创建了一个登录l_test,然后在数据库pubs中为登录l_test创建了用户账户u_test     同时将用户账户u_test添加到角色r_test中,使其通过权限继承获取了与角色r_test一样的权限     最后使用DENY语句拒绝了用户账户u_test对表titles的SELECT权限。     经过这样的处理,使用l_test登录SQL Server实例后,它只具有表jobs的所有权限。 --*/ USE pubs --创建角色 r_test EXEC sp_addrole 'r_test

2009-09-27 0comments 124hotness 0likes mikebai Read all
dev

更改SQL2005服务器排序规则

更改 SQL Server 2005 实例的默认排序规则的操作可能会比较复杂,包括以下步骤: 确保具有重新创建用户数据库及这些数据库中的所有对象所需的全部信息或脚本。 使用工具(例如大容量复制)导出所有数据。 删除所有用户数据库。 重新生成指定新的排序规则的 master 数据库(详细步骤如下)。 重新生成 master 数据库:       一、将SQL Server 2005 安装光盘放入光驱;      二、在操作系统上选择“开始”--“运行”(输入CMD)--“回车”;      三、于弹出的命令窗口通过“cd..”指令,回到磁盘的根目录(如c:\);      四、接着键入你光盘所在盘符,如“f:”,回车;      五、接着键入(“setup.exe /qn INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=123 SQLCOLLATION=Chinese_PRC_90_CI_AS”)命令重新构建master 数据库; (备注:如果是默认实例,则INSTANCENAME的值为“MSSQLSERVER”,有实例则录入实例;SAPWD的值为数据库密码;SQLCOLLATION为你所定义的排序规则,中文简体则为“Chinese_PRC_90_CI_AS”)      六、接着等几分钟候电脑自动运行,期间是没有提示运行完成窗口的,待光驱灯不闪烁及硬盘不连续读盘的时候表示安装完成;     七、接着重启电脑,重新建数据库,将之前导出的数据导入就OK了~!

2009-06-14 0comments 126hotness 0likes mikebai Read all
dev

SQL SERVER 数据类型详解

数据类型 类型 描             述 bit 整型 bit 数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据,如Yes 或No、True 或Fa lse 、On 或Off int 整型 int 数据类型可以存储从- 231(-2147483648)到231 (2147483 647)之间的整数。存储到数据库的几乎所有数值型的数据都可以用这种数据类型。这种数据类型在数据库里占用4个字节 smallint 整型 smallint 数据类型可以存储从- 215(-32768)到215(32767)之间的整数。这种数据类型对存储一些常限定在特定范围内的数值型数据非常有用。这种数据类型在数据库里占用2 字节空间 tinyint 整型 tinyint 数据类型能存储从0到255 之间的整数。它在你只打算存储有限数目的数值时很有用。 这种数据类型在数据库中占用1 个字节 numeric 精确数值型 numeric数据类型与decimal 型相同 decimal 精确数值型 decimal 数据类型能用来存储从-1038-1到1038-1的固定精度和范围的数值型数据。使用这种数据类型时,必须指定范围和精度。 范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数 money 货币型 money 数据类型用来表示钱和货币值。这种数据类型能存储从-9220亿到9220 亿之间的数据,精确到货币单位的万分之一 smallmoney 货币型 smallmoney 数据类型用来表示钱和货币值。这种数据类型能存储从-214748.3648 到214748.3647 之间的数据,精确到货币单位的万分之一 float 近似数值型 float 数据类型是一种近似数值类型,供浮点数使用。说浮点数是近似的,是因为在其范围内不是所有的数都能精确表示。浮点数可以是从-1.79E+308到1.79E+308 之间的任意数 real 近似数值型 real 数据类型像浮点数一样,是近似数值类型。它可以表示数值在-3.40E+38到3.40E+38之间的浮点数 datetime 日期时间型 datetime数据类型用来表示日期和时间。这种数据类型存储从1753年1月1日到9999年12月3 1日间所有的日期和时间数据, 精确到三百分之一秒或3.33毫秒

2009-06-07 0comments 110hotness 0likes mikebai Read all
dev

Unicode,UTF-8文章2篇

Unicode,UTF-8文章2篇 -----------1-------------- UNICODE 是目前用来解决 ASCII 码 256 个字符限制问题的一种比较流行的解决方案。大家知道,ASCII 字符集只有256个字符,用 0-255 之间的数字来表示。包括大小写字母、数字以及少数特殊字符;如标点符号、货币符号等。对于大多数拉丁语言来说,这些字符已经够用。但是,许多亚洲和东方语言所用的字符远远不止256个字符。有些超过千个。人们为了突破 ASCII 码字符数的限制,试图用一种简单的方法来针对超过256个字符的语言编写计算机程序。于是 UNICODE 应运而生。UNICODE 通过用双字节来表示一个字符,从而在更大范围内将数字代码映射到多种语言的字符集。 Unicode给每个字符提供了一个唯一的数字,不论是什么平台,不论是什么程序,不论什么语言。Unicode标准已经被这些工业界的领导们所采用,例如:Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase, Unisys和其它许多公司。最新的标准都需要Unicode,例如XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML等等,并且,Unicode是实现ISO/IEC 10646的正规方式。许多操作系统,所有最新的浏览器和许多其他产品都支持它。Unicode标准的出现和支持它工具的存在,是近来全球软件技术最重要的发展趋势。 为什么使用Unicode? 基本上,计算机只是处理数字。它们指定一个数字,来储存字母或其他字符。在创造Unicode之前,有数百种指定这些数字的编码系统。没有一个编码可以包含足够的字符:例如,单单欧州共同体就需要好几种不同的编码来包括所有的语言。即使是单一种语言,例如英语,也没有哪一个编码可以适用于所有的字母,标点符号,和常用的技术符号。这些编码系统也会互相冲突。也就是说,两种编码可能使用相同的数字代表两个不同的字符,或使用不同的数字代表相同的字符。任何一台特定的计算机(特别是服务器)都需要支持许多不同的编码,但是,不论什么时候数据通过不同的编码或平台之间,那些数据总会有损坏的危险。 比如,简体中文(GB)、繁体中文(BIG5)、日文中,“赵”都是一个字,但是编码不同。在不同的编码下,BIG5的赵是0xBBAF,而0xBBAF在GB里面就被显示为“化”,这就是乱码。而Unicode采用统一的编码,“赵”只有一个,不必管他在哪种文字里。 Unicode的优点是什么? 举一个最明显的例子就是Windows 2000/XP以及微软Office2000及其后的产品。因为这些软件都是Unicode内核,因此,无论何种文字,都可以在上面正常显示,而且是同屏显示。以前,简体中文的Word文件拿到英文版打开就会是乱码,简体中文的程序在Windows英文版上运行会出现乱码,而现在一切都解决了。 -----------2-------------- 一直在编码方面要求不是很高,所以对Unicode和UTF-8也不甚了解。   最近偶然翻到一篇UTF-8的文章,感觉解释的非常繁杂,因此才想到重新写一篇简单易懂一点的。   首先说明一下现在常用的一些编码方案:   1、在中国,大陆最常用的就是GBK18030编码,除此之外还有GBK,GB2312,这几个编码的关系是这样的。 最早制定的汉字编码是GB2312,包括6763个汉字和682个其它符号 95年重新修订了编码,命名GBK1.0,共收录了21886个符号。 之后又推出了GBK18030编码,共收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字,现在WINDOWS平台必需要支持GBK18030编码。 按照GBK18030、GBK、GB2312的顺序,3种编码是向下兼容,同一个汉字在三个编码方案中是相同的编码。   2、台湾,香港等地使用的是BIG5编码   3、日本:SJIS编码   如果把各种文字编码形容为各地的方言,那么Unicode就是世界各国合作开发的一种语言。   在这种语言环境下,不会再有语言的编码冲突,在同屏下,可以显示任何语言的内容,这就是Unicode的最大好处。   那么Unicode是如何编码的呢?其实非常简单。   就是将世界上所有的文字用2个字节统一进行编码。可能你会问,2个字节最多能够表示65536个编码,够用吗?   韩国和日本的大部分汉字都是从中国传播过去的,字型是完全一样的。   比如:“文”字,GBK和SJIS中都是同一个汉字,只是编码不同而已。   那样,像这样统一编码,2个字节就已经足够容纳世界上所有的语言的大部分文字了。   Unicode的学名是"Universal Multiple-Octet Coded Character Set",简称为UCS。   现在用的是UCS-2,即2个字节编码,而UCS-4是为了防止将来2个字节不够用才开发的。UCS-2也称为基本多文种平面。   UCS-2转换到UCS-4只是简单的在前面加2个字节0。   UCS-4则主要用于保存辅助平面,例如Unicode 4.0中的第二辅助平面   20000-20FFF - 21000-21FFF - 22000-22FFF - 23000-23FFF - 24000-24FFF - 25000-25FFF -   26000-26FFF - 27000-27FFF - 28000-28FFF - 29000-29FFF - 2A000-2AFFF - 2F000-2FFFF   总共增加了16个辅助平面,由原先的65536个编码扩展至将近100万编码。   那么既然统一了编码,如何兼容原先各国的文字编码呢?   这个时候就需要codepage了。   什么是codepage?codepage就是各国的文字编码和Unicode之间的映射表。   比如简体中文和Unicode的映射表就是CP936,点这里查看官方的映射表。   以下是几个常用的codepage,相应的修改上面的地址的数字即可。 codepage=936 简体中文GBK codepage=950 繁体中文BIG5 codepage=437 美国/加拿大英语 codepage=932 日文 codepage=949 韩文 codepage=866 俄文 codepage=65001 unicode UFT-8 最后一个65001,据个人理解,应该只是一个虚拟的映射表,实际只是一个算法而已。 从936中随意取一行,例如: 0x9993 0x6ABD #CJK UNIFIED IDEOGRAPH 前面的编码是GBK的编码,后面的是Unicode。  

2009-05-29 0comments 102hotness 0likes mikebai Read all
dev

SQL Server中Rollup关键字使用技巧

首先创建测试表、添加数据。 create table #t(a int,b int,c int,d int,e int) insert into #t values(1,2,3,4,5) insert into #t values(1,2,3,4,6) insert into #t values(1,2,3,4,7) insert into #t values(1

2009-05-16 0comments 102hotness 0likes mikebai Read all
dev

SQL多级汇总统计

  DB数据: ID DEPT_ID ClassID M_YEAR M_Month M_SALARY M_SCORE 32 1 1 1 1 20 10 33 1 1 1 2 20 123 34 1 1 1 3 20 12 35 1 1 1 4 20 123 36 1 1 1 5 21 12 37 1 1 2 1 22 312 38 1 1 2 2 23 2 39 1 1 2 3 15 23 40 1 1 2 4 15 123 41 1 1 2 5 90 24 42 1 1 3 1 55 123 43 1 1 3 2 43 12 44 1 1 3 3 20 22 45 1 1 3 4 20 2 46 1 1 3 5 20 2 47 1 2 1 1 20 2 48 1 2 1 2 20 21 49 1 2 1 3 20 2

2009-05-10 0comments 108hotness 0likes mikebai Read all
1…2122232425

Recent Posts

  • c# winform适配高dpi
  • com.microsoft.sqlserver.jdbc.SQLServerException “trustServerCertificate”属性设置为“false”,但驱动程序无法使用安全套接字层 (SSL) 加密与 SQL Server建立安全连接
  • java -cp 用法介绍
  • HTML 容器元素
  • MVC的cshtml的介绍

Recent Comments

No comments to show.

COPYRIGHT © 2025 mikebai.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang