您的位置:首页 > 其它

关于登录名,用户名,角色,权限的学习笔记

2009-12-25 15:49 190 查看
select a.name,a.xtype,b.name,case action when 26 then 'references' when 178 then 'create function' when 193 then 'select'
when 195 then 'insert' when 196 then 'delete' when 197 then 'update' when 198 then 'create table' when 203 then 'create database'
when 207 then 'create view' when 222 then 'create procedudre' when 224 then 'execute' when 228 then 'backup database'
when 233 then 'create default' when 235 then 'backup log' when 236 then 'create rule'end
from sysobjects a inner join sysprotects c on a.id=c.id inner join sysusers b on c.uid=b.uid
where b.name='user1'--在此输入角色或用户名,查看其权限

create table tb(id int,num int)--新建测试表
insert into tb
select 1,1

--新建一个登陆,登陆名:qiankun ,密码:空,默认数据库:test
sp_addlogin 'qiankun','','test'
--为登录qiankun在数据库test中新建一个用户user1. 如果一个登陆没有对应的用户,则无法登陆
use test
go
sp_adduser 'qiankun','user1'
--查看登录
sp_helplogins 'qiankun'
--查看该数据库里的用户,此时用户user1默认属于public组,拥有public的权限,此时user1对表tb没有任何权限
sp_helpuser
--新建一个角色role1
sp_addrole 'role1'
--给角色赋予select 表tb的权限
grant select on tb to role1
--把用户user1添加进role1中,此时user1可以select 表tb
sp_addrolemember 'role1','user1'
--直接给用户user1赋予修改num字段的权限
grant update on tb(num) to user1
--给角色role1赋予新建表的权限,用户对自己新建的对象拥有全部权限
grant create table to role1
--给角色授予表tb的所有权限
grant all on tb to role1
--给角色role1授予所有语句权限,不能创建数据库,不能执行master..xp_cmdshell,待续!!!!!!!!!!!!!1
grant all to role1

------------------------------------------------------------------------------------------------------------
--此时登录qiankun只能使用数据库test,不能使用其他的数据库。
--通过在目的数据库上新建一个用户映射,登录qiankun可以访问多个数据库
--方法1
use wsd
go
sp_grantdbaccess 'qiankun','user2'
--收回访问数据库权限
use wsd
go
sp_revokedbaccess 'user2'
--方法2
use wsd
go
sp_adduser 'qiankun','user2'
--收回访问数据库权限
use wsd
go
sp_dropuser 'user2'
--用方法1添加的用户可以用方法2来删除,方法2添加的用户可以用方法1删除,两者的区别?!!!!!
--
--对于一个登陆名,如果想访问某一个数据库,必须在这个数据库上为该登录名添加一个用户,并且只能添加一个。
--不同数据库中的用户名字可以相同,但是它们是不同的用户,权限不一样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐