(一般MIS中角色和用户的概念还是明白的。)打开MSSQLSERVER2000,发现A注册下有 登录,服务器角色,然后A注册下B库,展开又有用户,角色
一直都没很明确搞清楚这4个东西的关联,和相关设置的影响和具体应用。
上网,找资料得出的结果都是大概说一下角色和用户的概念,说明过于笼统所以特来请教高人,热心人,路人,能否用简单点的例子来讲解下,不胜感激!
一直都没很明确搞清楚这4个东西的关联,和相关设置的影响和具体应用。
上网,找资料得出的结果都是大概说一下角色和用户的概念,说明过于笼统所以特来请教高人,热心人,路人,能否用简单点的例子来讲解下,不胜感激!
解决方案 »
- 求一个高效sql语句,在线等
- @@error到底能解决什么问题?
- 本人太菜解决不了,求正解呀。例如一个表有id a1 a2 a3 a4 cmdid~~~~~~~~~
- VSS使用搜索功能就出现乱码,求前辈指教。
- 高手速进..小弟有事不解...SQL里面的加密数据
- datetime的插入
- 非常着急!如何用程序将SQL的表导出到ACCESS中去?
- 怎么给 select getdate() 加列名??
- 如何用存储过程实现从工作出发Access表中导入到sql2000中来
- 还是关于SP的return...(高手给说说吧,谢谢啦.)
- |zyciis| 一条SQL语句,更新排序,且取出最大序号,排序可以了,但取出最大序号出错,谢谢
- 帮忙解决下sql 行列转换的语句
–创建用户–创建一个简单的用户,如果不指定用户名,则添加到当前数据库登录名中,如果不指定角色,则该用户默认属于public角色。下为添加newlogin登录名。EXEC sp_adduser 'newlogin'
–创建一个带用户名的用户,用户可以与登录名相同(同上一种类似),也可以不同,但要设定当前登录名,用户角色可选,默认为public。下为将用户newuser添加到newlogin登录名中。EXEC sp_adduser 'newlogin','newuser'
–创建角色EXEC sp_addrole 'newrole'
–下为将用户下为将用户newuser添加到newlogin登录名中。并指定newrole角色。EXEC sp_adduser 'newlogin','newuser','newrole'
–为角色newrole赋予jobs表的所有权限GRANT ALL ON jobs TO newrole
–为角色newrole赋予sales表的查、改权限GRANT SELECT,UPDATE ON sales TO newrole
–禁止角色newrole使用employees表的插入权限DENY INSERT ON employees TO newrole
另一种创建用户和赋予角色的方式–为登录newlogin在数据库中添加安全账户newuserEXEC sp_grantdbaccess 'newlogin,'newuser'
–添加newuser为角色newrole的成员EXEC sp_addrolemember 'newrole','newuser'
–数据库用户、角色、登录的删除操作–删除当前数据库用户EXEC sp_revokedbaccess 'newuser';
–删除数据库登录EXEC sp_droplogin 'newlogin'
–删除数据库角色EXEC sp_droprole 'newrole'
–从数据库角色(newrole)中删除用户(newuser)EXEC sp_droprolemember 'newrole', 'newuser'
–用SQL代码新建登录、用户–创建带密码的mylogin登录名,MUST_CHANGE 选项需要用户首次连接服务器时更改此密码。CREATE LOGIN mylogin WITH PASSWORD = '123456' MUST_CHANGE;
–创建映射到凭据的登录名。–以下示例将创建mylogin登录名。此登录名将映射到mycredential凭据。CREATE LOGIN mylogin WITH PASSWORD = '123456', CREDENTIAL = mycredential;
–从Windows 域帐户创建登录名–如果从Windows 域帐户映射登录名,则登录名必须用方括号([ ]) 括起来。CREATE LOGIN [jack\xiangzhao] FROM WINDOWS;
–如果指定用户名,则不使用默认登录名作为该数据库用户CREATE USER myuser FOR LOGIN mylogin
–以下示例将创建用户myuser拥有的数据库角色myroleCREATE ROLE myrole AUTHORIZATION myuser;
–以下示例将创建db_role固定数据库角色拥有的数据库角色myroleCREATE ROLE myrole AUTHORIZATION db_role; ==========================================================================
==========================================================================
==========================================================================
数据库所有者
dbo是具有在数据库中执行所有活动的暗示性权限的用户,将固定服务器角色 sysadmin 的任何成员都映射到每个数据库内称为 dbo 的一个特殊用户上。另外,由固定服务器角色 sysadmin 的任何成员创建的任何对象都自动属于 dbo。
如果用户 laone是固定服务器角色 sysadmin 的成员,并创建表 Table1,则表 Table属于 dbo,并以
dbo.Talble 而不是 laone.Table1 进行限定。相反,如果 laone不是固定服务器角色 sysadmin
的成员,而只是固定数据库角色 db_owner 的成员,并创建表 Table1,则 Table1属于 laone,并限定为
laone.Table1。
无法删除 dbo 用户,且此用户始终出现在每个数据库中。只有由 sysadmin 固定服务器角色成员(或 dbo
用户)创建的对象才属于 dbo。由任何其他也不是 syadmin 固定服务器角色成员的用户(包括 db_owner
固定数据库角色成员)创建的对象:属于创建该对象的用户,而不是 dbo,用创建该对象的用户名限定。
如何修改数据库的所有者
更改当前数据库的所有者。语法
sp_changedbowner [ @loginame = ] 'login'
[ , [ @map = ] remap_alias_flag ]参数
[@loginame =] 'login'当
前数据库新所有者的登录 ID。login 为 sysname,没有默认值。login 必须是已存在的 SQL Server 登录或
Windows 用户。如果 login
通过当前数据库内的现有别名或用户安全帐户已拥有访问该数据库的权限,则不能成为该数据库的所有者。为了避免这种情况,应先除去当前数据库中的别名或用
户。[@map =] remap_alias_flag值为 true 或 false,表示旧数据库所有者
(dbo) 的现有别名是映射到当前数据库的新所有者还是要除去。remap_alias_flag 的数据类型为 varchar(5),默认值为
NULL,表示旧 dbo 的任何现有别名均映射到当前数据库的新所有者。false 表示除去旧数据库所有者的现有别名。返回代码值
0(成功)或 1(失败)注释
执行 sp_changedbowner 之后,新所有者称为数据库中的 dbo 用户。dbo 拥有执行数据库中所有活动的暗示性权限。不能更改 master、model 或 tempdb 系统数据库的所有者。若要显示有效 login 值的列表,请执行 sp_helplogins 存储过程。执行只有 login 参数的 sp_changedbowner 会将数据库所有权改为 login,并将先前别名为 dbo 的用户别名映射到新数据库所有者。权限
只有 sysadmin 固定服务器角色的成员可以执行 sp_changedbowner。示例
下面的示例使用户 Albert 成为当前数据库的所有者,并将旧数据库所有者的现有别名映射到 Albert。EXEC sp_changedbowner 'Albert'