您好,欢迎访问三七文档
学云签约讲师:天轰穿趣味编程系列视频教程SqlServer开发视频教程安全机制之架构与权限田洪川(天轰穿)Blog:学号/QQ号:110535808微博:://weibo.com/thcd学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台•架构•管理和维护构架•权限类型与管理学习目标学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台•架构是形成单个命名空间的数据库实体的集合。它是数据库级的安全对象,或者说是数据库对象的容器更为贴切•架构中的对象访问–对默认架构的访问可以直接访问对象名;–对非默认架构的对象访问则:架构名.对象名架构学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台架构、角色、用户•架构存放了表、视图、过程、触发器等。角色和用户一旦拥有这个架构,则默认拥有了对该架构下面所有对象的管理权•默认架构是指在默认情况下,该用户所创建的对象属于默认架构,而架构的所有者是指拥有和管理架构的用户。学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台用户A用户B用户C默认架构架构A架构B架构C各种对象各种对象各种对象各种对象学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台架构、角色、用户•关系特点–一个架构中不能包含相同名称的对象,相同名称的对象可以在不同的架构中存在–一个架构只能有一个所有者,所有者可以是用户、数据库角色、服务器角色–一个数据库角色可以拥有一个默认架构和多个架构–多个数据库用户可以共享默认架构–由于架构与用户独立、删除用户不会删除架构中的对象学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台•如果我们新创建的用户没有指定架构,那么它就会拥有一个默认的dbo架构,dbo是一个自动生成的架构,它拥有数据库的所有对象。•用SQLServerManagementStudio创建新用户的时候就可以直接在下面拥有架构那一栏勾选就行了,而用SQL语句的时候是通过Default_Schema来为用户指定默认架构。–createuserthcfromloginxiaotianwithdefault_schema=Time_manager默认架构学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台实践•创建架构,访问架构下面的对象•授权•维护架构-转移对象、删除架构学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台权限•固定服务器角色和数据库角色,这两种是属于系统预定义权限,这些在我们安装完系统后自动就有了。但是我们也同时看到,在这些角色权限中,起点都是针对整个数据库来进行权限控制的,没有针对单独的表进行控制;其次,这些角色的权限会继承,只要我们新建一个登录名或者数据库用户并加入到指定的角色中,那么这个登录名或者用户也就同时拥有了角色所拥有的全部权限。•权限类型:–预先定义和预先未定义–针对权限使用对象来说又分为针对所有对象和针对特殊对象学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台权限适用于SELECT同义词、表和列、表值函数[Transact-SQL和公共语言运行时(CLR)]和列、视图和列VIEWCHANGETRACKING表、架构UPDATE同义词、表和列、视图和列REFERENCES标量函数和聚合函数(Transact-SQL和CLR)、ServiceBroker队列、表和列、表值函数(Transact-SQL和CLR)和列、视图和列INSERT同义词、表和列、视图和列DELETE同义词、表和列、视图和列EXECUTE过程(Transact-SQL和CLR)、标量函数和聚合函数(Transact-SQL和CLR)、同义词RECEIVEServiceBroker队列VIEWDEFINITION过程(Transact-SQL和CLR)、ServiceBroker队列、标量函数和聚合函数(Transact-SQL和CLR)、同义词、表、表值函数(Transact-SQL和CLR)、视图ALTER过程(Transact-SQL和CLR)、标量函数和聚合函数(Transact-SQL和CLR)、ServiceBroker队列、表、表值函数(Transact-SQL和CLR)、视图TAKEOWNERSHIP过程(Transact-SQL和CLR)、标量函数和聚合函数(Transact-SQL和CLR)、同义词、表、表值函数(Transact-SQL和CLR)、视图CONTROL过程(Transact-SQL和CLR)、标量函数和聚合函数(Transact-SQL和CLR)、ServiceBroker队列、同义词、表、表值函数(Transact-SQL和CLR)、视图常用的对象&权限学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台•调用fn_builtin_permissions系统功能来返回可授权限的完整列表–SELECT*FROMfn_builtin_permissions(default);•返回组件的全部可授权限–SELECT*FROMfn_builtin_permissions('assembly');•获取数据库中现有表“BOOKS”的可授权限–SELECT*FROMfn_my_permissions('BOOKS','object');查看可授权限学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台授予权限•分别创建4个用户“thc、laotian、xiaotian、test”,接着完成如下四个任务–将创建表的权限赋给用户“thc”;–把创建表的权限授权给“test”,同时指出,test还可以将它得到的这个权限转授给其他用户–然后再把CONTROL权限赋给“laotian”;–把BOOKS表的INSERT权限赋给“xiaotian”学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台•对“xiaotian”赋予的INSERT权限收回收回权限学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台•本章的主要作用是让学员能够灵活的应用SqlServer提供的角色,权限,用户等为自己的数据库系统安全再上一把锁,同时也灌输一种编程思想,虽然这是学习,但是大家不要忘记,SqlServer也终究还是个程序而已,我们将来也许要做的系统并不比这个小,所以我们在学习它的安全架构方面也要多去思考怎么把这套安全机制用到我们自己的实践中。总结学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台思考&练习•实战操作–新建登录名–新建一个数据库–为数据库新建一个用户–在库中新建一个架构T1–将用户的默认架构指定为新建的T1–设置此用户拥有对该架构的全部权限,但惟独不能创建表学云为您提供高品质课件、学习督导服务、即时答疑、知识交易平台自学成才三步曲:一:概念知道个大概,模仿别人的实例,哪怕只有一句话;二:变着花样的来玩模仿出来的实例,严重的举一反三;三:结合自己的理解去看概念,去看深入的知识分析,再用自己的话总结。解决问题三部曲:一:自己尝试各种方式去解决;二:百度、google上去搜索三:请教其他人(在学云网上请教其他人,同时也希望您能多分享、交流和帮助更多人)Blog:学号/QQ号:110535808微博:://weibo.com/thcd
本文标题:天轰穿趣味编程系列视频教程之Sql-Server开发视频教程辅助笔记第四讲:安全机制之架构与权限
链接地址:https://www.777doc.com/doc-7532099 .html