一、若是在删除用户的时候出现没法删除用户,此用户拥有架构。那么是由于当前这个用户隶属于某个架构,咱们在建立用户的时候默认隶属于dbo架构的,若是你指定了非dbo架构那么就必须解除架构的绑定才能删除这个用户,隶属于dbo架构除外。数据库 二、咱们在软件或者系统开发的过程当中,可能有不少的人对数据库进行操做,不免会出现某我的对数据的误操做,那么怎么避免这种状况呢?架构 经过建立指定的用户,而后给于用户指定角色并对角色赋予相应的权限便可避免其余的误操做。ide a、建立角色网站 Create Role TestRolespa b、给予角色赋予相应的权限对象 Grant create table,create procedure,create view to TestRole--建立表 视图 存储过程的权限开发 Grant Select,insert,execute,alter to TestRole--查询,添加,执行存储过程,修改存储过程、视图、表it c、建立登录table Create Login TestLogin with password='123456'class d、建立用户 Create User TestUser for Login TestLogin --通常咱们设置登陆名和用户名一致,这里为了区分,不一致 e、添加用户到角色中 exec sp_addrolemember 'TestRole','TestUser' 至此用户建立结束,咱们打开SSMS,在登陆名输入TestUser,密码为123456便可进入到管理界面 在查询分析器执行Update Table set ceshi='1' 会出现什么错误呢? 消息 229,级别 14,状态 5,第 1 行 由于咱们没有给予这个用户update的权限,只给了select 、insert 、execute 、alter 固然权限还有不少,好比赋予角色的执行评估计划的权限 Grant showplan to TestRole 三、关于架构和用户 我记得有个网友对架构和用户的关系有个很好的比喻:数据库中有表、存储过程、视图、触发器等不少的对象,就像一个网站中有网页、脚本、文件夹等对象同样,暂称之为网站对象。咱们都知道网站中的对象咱们都是颇有条理的放在不一样的文件夹下面,因此数据库对象也不能都放在一堆。那么相对于网站的对象数据库对象的架构是什么意思呢?很明显就是文件夹了。 那是否是架构和文件夹彻底相同呢?答案是:不是。文件夹能够屡次嵌套,架构却不能够。一个对象只能属于一个架构,就像一个文件只能存放于一个文件夹。 咱们访问一个数据库对象应该是:"架构名。对象名" 列出数据全部的架构 select sys.objects.name,sys.schemas.name 架构-用户:一对多的关系 架构-角色:多对多的关系 a.一个架构中不能包含相同名称的对象,相同名称的对象能够在不一样的架构中存在。
b.一个架构只能有一个全部者,全部者能够是用户, 数据库角色, 应用程序角色。 c.一个用数据库角色能够能够拥有一个默认架构,和多个架构。 d.多个数据库用户能够共享单个默认架构。 e.因为架构与用户独立,删除用户不会删除架构中的对象。 |