当前位置: 代码迷 >> Sql Server >> SQL ,授权,该怎么处理
  详细解决方案

SQL ,授权,该怎么处理

热度:401   发布时间:2016-04-27 14:22:25.0
SQL ,授权
create login abc --建立登录名abc
with password='123' --建立密码123
go
create user abc for login ab --把abc用户添加到登录名中
go

然后对abc用户进行授权
grant select on wowo.AA_BB to abc with grant option
go 

可不可以这样理解,登录数据库时的权限就是abc用户的权限。
当abc这个用户权限多大时,使用ab登录名登录数据库时的权限就是多大。

当创建一个用户时,并没有进行授权时,他的权限是什么
当创建一个登录名时,没有把相应的角色添加进去时,他的权限是什么。

--创建一个新的角色
exec sp_addrole 'mr';

--把mr添加到sysadmin角色中。
exec sp_addsrvrolemember 'mr','sysadmin';

请问下,当把mr添加到固定的角色当中后,是不是就不用另外授权了,直接具有sysadmin的权限


我是新手,还忘高手们,能帮小弟解答一下。

------解决方案--------------------
SQL用户名、登录名及授权
------解决方案--------------------
SQL code
--创建windows 登录账户create login [computer_name\alice] from windowswith default_databse=adventureworks--创建sqlserver 登录名create login bob with [email protected]',default_database=adventureworks--创建sqlserver 弱密码登录名create login bob with password='Password',default_database=adventureworks--创建请密码,让密码过期,首次要改密码的sqlserver登录名create login bobwith password='password' must_shange,--必须更改default_database=adventureworks,check_expipation=on,                     --判断是否过期check_pulicy=on                           --密码复杂度sqlserver2005 为客户流出来了一个接口.解锁:alter login username with password='user1'password' unlock账户--本地安全策略--账户锁定阀值--(在发生以下情况之后,锁定账户)  设置为5或是3 其他人输入三次密码错误就不在让输入了设定多长时间也可以设置.. 账户锁定时间 缺省情况下是30分钟..这里也可以自己设置..自己进去不去...就一直进给你吧账户锁住..sa,登录点击锁定的用户..点属性--状态--这时这里就有一个sqlserver身份验证..下面登录已锁定前面的对号给去掉就可以了2000 下 创建登录名sp_addlogin 'demo2','123'gosp_adduser '123',demo2'--sa用户创建表 demo2create table demo2(a int)--切换用户demo2setuser 'demo2'我们没有为demo2授权..在默认情况下他的权利应该是非常低的select * from sysobjects --demo2可以看系统表...这样就有危险了..sql 2000下就根据报错就能看出数据库有那些表--用户没有在demo2上执行该操作的权限这样就告诉黑客数据库里有这张表了--sql2005create login demo2userwith password='demo2',default_database=demodbgocreate user demo2user for login demo2user--且账号setuser 'demo2user'这个demo2user 是看不了系统表的..可以看到自己自带的系统表删除数据库就算数据库数据存在..没有权限:他也会报 无法对数据表demo2进行删除,因为他不存在.或你没有所需的权限--exampleuse master gocreate login demo3awith password='123',default_database=demodbcreate login demo3bwith password='123',default_database=demodbuse demodbgocreate user demo3a for login demo3acreate user demo3b fro login demo3b--创建无架构表create table table3a(a int,b int)go--创建一个架构create schema schcreate table table3b(a int ,b int)gogrant select on schema::sch to demo3b --为demo3b账户 授予sch下面的所有表的权限set user 'demo3b'select * from demo3b  --前面创建demo3b的时候没有指明他属于哪个shmselect * from sch.demo3b setuser --切换到 sasetuser demo3a --切换到demo3a登录名select * from sch.table3b --这里也会报错..因为还没有给sch 查询权限setuser--切换成管理员alter user demo3b with default_cchema=schset user demo3bselect * from talbe3b --这个时候就不会报错了 grant insert,select on table1 to user1,user2gogrant insert,select on schema::schto user1             gogrant alter any schemato user1              --这里要有sa权限才能执行user master  --此处必须要用mastergogrant control server    --可以去控制serverto user1gocreate login user_krwith password='!C906E6D9',default_database=demo   ----创建登录名gocreate user user_kr for login user_kr         ----为登录名创建用户名.他默认在demo数据库下GRANT SELECT ON student TO user_kr           --为user用户名创建权限SETUSER 'user_kr'             --切换用户到user_krSELECT * FROM dbo.student   --查询成功SELECT * FROM dbo.sc         --查询失败,没有select权限SELECT 'grant select on '+NAME+' to user_kr' from sysobjects where type='u' --sql2000的写法SELECT 'grant select on '+NAME+' to user_kr' FROM sys.tables                --sql2005的写法SELECT 'grant select on '+NAME+' to user_kr' from sysobjects where type='u' AND SUBSTRING(NAME,14,8)='20111010'BETWEEN '20111011' AND '20111025'ORDER BY NAMEsp_helptext  --查询创建数据表,数据库,视图,的脚本sp_helptext:显示用户定义规则的定义、默认值、未加密的 Transact-SQL 存储过程、用户定义 Transact-SQL 函数、触发器、计算列、CHECK 约束、视图或系统对象(如系统存储过程)。sp_adduser 'user_kr','C906E6D9' --2000加用户名SELECT 'grant select on '+NAME+' to user_kr' from sysobjects where type='u' AND SUBSTRING(NAME,14,8) BETWEEN '20111011' AND '20111025'ORDER BY NAME我一sql新人..入行1个月了...不对多拍砖..我改
  相关解决方案