添加修改sa用户(数据库授权总结)

来源:互联网 发布:java做题网站 编辑:程序博客网 时间:2024/05/29 12:50

1、更改登录方式为混合验证方式

操作步骤为:

  1. 打开企业管理器,依次展开服务器组,用右键单击软件使用的服务器。

  2. 在弹出的快捷菜单,执行“属性”命令,出现“SQL Server属性”对话框。

            单击“安全性”标签,在“安全性”选项框中,将“仅Windows”改为“SQL Server和Windows”身份验证。

  3. 设置完成后,单击“确定”按钮,系统提示重新启动服务器。

  4. 单击“是”按钮,完成对身份验证模式的修改。

  说明:在 Windows XP操作系统与Windows 2000操作系统下修改SQL Server 2000身份验证模式相同,但在Windows 98操作系统下,却不能通过以上方法对身份验证模式进行修改。因为在Windows 98操作系统下,安装SQL Server 2000时,系统只支持“混合模式”身份验证模式。

 

2、如何修改SQL Server 2000系统管理员sa的登录密码?

  分析:SQL Server 2000系统管理员sa的登录密码,一般在安装SQL Server 2000时就已经设置。在数据库管理系统中,用检查口令等手段来检查用户身份,合法的用户才能进入数据库系统。需要通过验证Sa登录密码才能创建、删除账户,这样sa的登录密码在此就显得尤为重要。

  操作步骤如下:

  1. 打开企业管理器,依次展开服务器组,然后展开服务器。

  2. 打开“安全性”文件夹,单击“登录”,然后用右键单击“Sa”,执行“属性”命令。

  3. 弹出“SQL Server登录属性”对话框。在“SQL Server身份验证”密码栏,输入最新密码。

  4. 单击“确定”按钮,弹出“确认密码”对话框,再输一遍登录密码。

  5. 单击“确定”按钮,完成对Sa登录密码的修改。 


总结

1(一)概述:

一、安全管理:
1)对用户登陆进行身份认证Authentication:当用户登陆到数据库系统时,系统对该用户的账号和口令进行认证,确认账号是否有效以及能否访问数据库系统。
2)对用户操作进行权限的控制,让用户只能在允许的权限内操作数据库。
用户操作数据库的权限:
1)登陆SQLSERVER服务器必须通过身份验证;
2)必须是该数据库的用户,或者是某一数据库角色的成员;
3)必须有执行权限。


二、身份认证
1、WindowsNT认证模式(Windows集成身份认证模式)
登陆WindowsNT时身份认证,只要正常登陆系统,在登陆时选择“集成WINDOWS身份验证“,登陆SQL时就不用再进行身份认证。
  1)要采用NT网络账号登陆SQLSERVER,必须将NT网络账号加入到SQL中;
 2)NT网络账号登陆到另外一个网络的SQLSERVER,必须在NT网络中设置彼此的托管权限。

 

这主要是从服务器的登陆就开始着手安全性登陆问题。以系统管理员的身份安装了SQLSERVER,则WindowsNT系统管理员则可以集成Windows身份认证的方式登陆SQLSERVER 。
但其他用户的身份登陆WindowsNT系统就未必能够登陆SQLSERVER系统。若其他Windows用户想要登陆,则必须在SQLSERVER中对其Windows用户进行访问Windows系统的授权。

 

2、SQLSERVER身份认证模式(刚开始默认为sa用户systemadministrator)
在WindowsNT,Windows2000/2003(除windows9x外)上运行SQLSERVER系统时,系统管理员设定的登陆模式可设为混合模式
即:既可以使用WindowsNT模式,又可以使用SQLSERVER账号登陆。

 

(二)有关于身份认证的具体的操作

 

一、针对WindowsNT认证模式登陆的账号

 

在授权后,可将其添加到固定服务器和数据库角色,使其具有操作服务器和数据库的权限(详情见一篇博文---固定服务器角色和固定数据库角色)


1、可视化方式
1)先创建Windows2003系统用户,或创建域用户用户,在计算机管理中创建。
2)再将系统用户加入到SQLSERVER中。实例名---安全性---登陆,右键---新建用户---指明域名和账号

2、调用系统存储过程(前提也是要在系统中有这样的账号)
1)授权,我电脑的操作系统为Win2003SP2,计算机为域控制器,域名为TEST
   sp_grantlogin [@loginname=] 'login'
    @login常量字符串
    login格式:域\用户名  Test\steven
2)取消WindowsNT网络用户登陆权限
  sp_revokelogin [@loginname=] 'login'

3)
例1:条件:Test/user1和Test/user2在同一组下
       操作:若赋予WindowsNT普通用户user1登陆SQLSERVER的权限,但不赋予WindowsNT普通用户Test/user2登陆权限
       结果:Test/user1登陆系统,能够登陆访问数据库,但是Test/user2登陆系统,不能登陆访问数据库

例2:条件:如果Test/steven是Test/Admins组的成员
       操作1:用存储过程取消Test下的steven用户的权限,但是授权Test下Admins组相应权限
       结果1:可以通过steven登陆系统
       操作2:sp_denylogin [@loginname=] 'login',授权Test下Admins组相应权限
       结果2:此时拒绝了test域下的steven ,即使Test域下的Admins组有权限,Steven也不能登陆


在安全性---登陆处---双击更改默认登陆数据库,此时没有默认密码。

4)在授权了WindowsNT普通用户后,用户可以登陆到SQLSERVER,但是无法访问数据库;
    此时在需要的登陆的数据库对象(如XSCJ)中创建用户的账户,即创建当前用户在数据库对象中的映射。
    sp_GrantDbAccess在每个用户数据库中创建用户账户。
例:Use XSCJ
      Exec sp_GrantDbAccess 'Test/Administrator'

 

二、混合认证模式下SQLServer登陆账号
1、可视化方式创建SQLSERVER登陆账号
 1)成功登陆WindowsNT
 2)实例名---右键属性---安全性---选择身份验证为"SQLSERVER和Windows",只有这样才能更改登陆方式,.NET应用程序才能够通过SQLSERVER的相应角色的用户名访问数据库。
 3)通过企业管理器创建账号:安全性---[登陆,右键]---新建登陆---输入账号和密码---选择SQLSERVER身份验证

2、调用系统存储过程添加和删除SQLSERVER登陆账号
1)添加账号
sp_addlogin [@login=] 'login'
[
  [@password=] 'password'
  [@defaultdb=] 'defaultdb'
  [@defaultLanguage=] 'defaultlanguage'
  [@sid=] 'sid'
  [@encryptopt]'null/'skip_encryption'/'skip_encryption_old '是否对密码加密'
]
1、不能从用户定义的事物中执行sp_addlogin
2、sp_password  更改用户密码 sp_password[@ps_old=]'oldpassword',[@ps_new=]'newpassword',[@loginname=]'login'
    sp_defaultdb  更改用户默认数据库 sp_defaultdb[@loginname=]'login',[@database=]'database'
3、只有sysadmin和securityadmin固定服务器角色才可以执行sp_addlogin

2)删除账号
sp_droplogin 'login  删除SQL登陆账号
1、不能删除任何数据库对象(如:XSCJ)现有用户的登陆账号。必须首先使用sp_dropuser删除该特定数据库用户;
    这些用户是指:在实例名---数据库,选择相应数据库---登陆---用户,右键---新建数据库用户,
    通过这个操作将已有用户映射到当前数据库上,删除时也要用sp_dropuser删除该特定数据库用户,取消映射
2、不能删除系统管理员sa的登陆账号
3、不能在用户定义的事务内执行sp_droplogin
4、只有sysadmin和securityadmin固定服务器角色的成员才能执行sp_droplogin

3)同样,通过sp_grantdbaccess将用户账户映射到相应的对象数据库中,使SQLSERVER用户拥有访问数据库的权限。

 

 

(三)举例



///授权WindowsNT账户登陆SQLSERVER的请求
Use master
///TEST为域名,steven为该域名下的用户
Exec sp_grantlogin [TEST\steven]
Go
///取消WindowsNT用户或组登陆SQLSERVER的账号
Use master
Exec sp_revokelogin [TEST\steven]
Go

 

///混合模式添加SQLSERVER系统的登陆账号
Use master
Exec sp_addlogin 'zhang'
Exec sp_password '7','zhang' ///旧密码为空,则不写,否则在新密码'7'之前要加上旧密码
Exec sp_defaultdb 'zhang','XSCJ' ///设置默认的登陆数据库
Go

Go
Use master
Exec sp_droplogin 'zhang'
Go
Use master
Exec sp_addlogin 'wang','7','XSCJ','us_english'
Go

Use master
Exec sp_dropuser 'wang' ///错误,当前数据库不存在用户wang,意思是这个登陆账号没有映射成为专用的数据库用户
Go
Exec sp_revokeLogin 'wang' ///错误,不是系统帐户,WindowsNT的系统账号添加到SQLSERVER2000的登陆账号才能这样删除
Go
Use master
Exec sp_droplogin 'wang' ///正确,可以删除SQLSERVER的系统账户
Go

Use master
Exec sp_addlogin 'stevenz','7','Test2','us_english'
Go
///可视化方式:此时通过"在实例名---数据库,选择相应数据库---登陆---用户---新建数据库用户"操作,将刚刚创建的stevenz映射到Test2数据库上,成为数据库用户
Use Test2
Exec sp_grantdbaccess 'stevenz' ///代码创建账户在欲访问的数据库对象中的映射用户账户
Go
Use master
Exec sp_droplogin 'stevenz'  ///错误,会提示“登录'stevenz' 在一个或多个数据库中有别名或映射到了用户上。请除去这些用户或别名后再除去该登录。”
Go
///此时要到特定的数据库用sp_dropuser去除映射,删除该用户
Use Test2
Exec sp_dropuser 'stevenz' ///删除该数据库用户stevenz
Go
Exec sp_droplogin 'stevenz' ///删除登陆账号stevenz
Go

///Windows集城身份验证
Use master
Exec sp_addlogin [Test\Administrator] ///错误,不能这样授权域帐户或系统帐户,要用GrangLogin
Go
Use master
Exec sp_grantlogin [TEST\Administrator] ///正确,WindowsNT系统账户和域账户只能用GrantLogin来授权,以达到Windows身份验证的目的
Go
Use XSCJ
Exec sp_grantdbaccess [TEST\Administrator] ///在相应的数据库下,授权访问数据库的权限,删除时需要到响应数据库下用sp_dropuser去删除
Go
Use master
Exec sp_revokelogin [TEST\Administrator]
Go

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 发现自己被三了怎么办 被扇巴掌脸肿了怎么办 分到上海市金鼎学校怎么办 被列入维稳对象怎么办? 资金涉及诈骗案冻结了怎么办 小米浏览器浏览记录找不到了怎么办 米聊账号封了怎么办 管家婆创业版管理员忘记密码怎么办 手机不记得密码了怎么办 手机不记得开锁密码怎么办 oppo手机不记得密码怎么办 电脑密码不记得了怎么办 vivo手机不记得密码了怎么办 运管把车扣了怎么办 大学通选课挂科怎么办 通识必修课挂了怎么办 我想开3d艺术馆怎么办 档案回原籍报到证怎么办 服刑的人孩子上学怎么办 长沙终身教育网用户名忘记了怎么办 乡下卖服装没生意怎么办 没能力没学历该怎么办 没有学历的我该怎么办 补过的牙掉了怎么办 法院判完被告不给钱怎么办 b证到期未继续教育怎么办 宝宝上幼儿园中午要用尿不湿怎么办 嫁到北京农村怎么办居住证 2020年没脱贫的农民怎么办 2020年农民的土地怎么办 车停在停车场被划怎么办 专升本差两分怎么办 入职需要学士学位证怎么办 不喜欢写科研项目又没编制怎么办 易学堂密码忘了怎么办 易班手机号换了怎么办 易班登录不上怎么办 易到手机号换了怎么办 海外留学没有教育部认证怎么办 七过月宝宝便秘怎么办 6个月孩子便秘怎么办