怎样用程序添加数据库用户和修改数据库用户密码?

xinguang 2003-08-21 02:44:12
a
...全文
1930 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
CrazyFor 2003-08-22
  • 打赏
  • 举报
回复
xinguang(星光) ,SQL2000的联机帮助.
liukaiii 2003-08-22
  • 打赏
  • 举报
回复
联机丛书是个宝
xinguang 2003-08-21
  • 打赏
  • 举报
回复
CrazyFor(太阳下山明朝依旧爬上来)
你的这些说明是哪的啊?
能不能给我一份啊?
愉快的登山者 2003-08-21
  • 打赏
  • 举报
回复
EXEC sp_addlogin 'loginname', 'pass', 'dbname'

EXEC sp_password 'oldpass', 'newpass', 'loginname'



愉快的登山者


◢◣◢◣◢◣
pengdali 2003-08-21
  • 打赏
  • 举报
回复
企业管理器-->安全性-->登陆-->新建用户-->test-->右键你的用户-->属性-->把你的数据库加进去-->打开你的库-->右键你的表-->所有任务-->管理权限-->设置对应的权限

或:

EXEC master..sp_addlogin '用户', '密码', '他的库',null
go
use 他的库
EXEC sp_adduser '用户'
------------------------------------------------------
改密码:
企业管理器-->实例名-->安全性-->登录-->双击右边的SA-->更改密码

或:
启动查询分析器
运行:

EXEC sp_password NULL, 'NewPassword', 'Sa'
pengdali 2003-08-21
  • 打赏
  • 举报
回复
EXEC master..sp_addlogin '用户', '密码', '他的库',null
go
use 他的库
EXEC sp_adduser '用户'

改密码:
企业管理器-->实例名-->安全性-->登录-->双击右边的SA-->更改密码

或:
启动查询分析器
运行:

EXEC sp_password NULL, 'NewPassword', 'Sa'
pengdali 2003-08-21
  • 打赏
  • 举报
回复
EXEC master..sp_addlogin '用户', '密码', '他的库',null
go
use 他的库
EXEC sp_adduser '用户'
CrazyFor 2003-08-21
  • 打赏
  • 举报
回复
sp_addlogin
创建新的 Microsoft® SQL Server™ 登录,使用户得以连接使用 SQL Server 身份验证的 SQL Server 实例。

sp_password
添加或更改 Microsoft® SQL Server™ 登录的密码。

----------------------
Transact-SQL 参考


sp_addlogin
创建新的 Microsoft® SQL Server™ 登录,使用户得以连接使用 SQL Server 身份验证的 SQL Server 实例。

语法
sp_addlogin [ @loginame = ] 'login'
[ , [ @passwd = ] 'password' ]
[ , [ @defdb = ] 'database' ]
[ , [ @deflanguage = ] 'language' ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt = ] 'encryption_option' ]

参数
[@loginame =] 'login'

登录的名称。login 的数据类型为 sysname,没有默认设置。

[@passwd =] 'password'

登录密码。password 的数据类型为 sysname,默认设置为 NULL。sp_addlogin 执行后,password 被加密并存储在系统表中。

[@defdb =] 'database'

登录的默认数据库(登录后登录所连接到的数据库)。database 的数据类型为 sysname,默认设置为 master。

[@deflanguage =] 'language'

用户登录到 SQL Server 时系统指派的默认语言。language 的数据类型为 sysname,默认设置为 NULL。如果没有指定 language,那么 language 被设置为服务器当前的默认语言(由 sp_configure 配置变量 default language 定义)。更改服务器的默认语言不会更改现有登录的默认语言。language 保持与添加登录时所使用的默认语言相同。

[@sid =] sid

安全标识号 (SID)。sid 的数据类型为 varbinary(16),默认设置为 NULL。如果 sid 为 NULL,则系统为新登录生成 SID。尽管使用 varbinary 数据类型,非 NULL 的值也必须正好为 16 个字节长度,且不能事先存在。SID 很有用,例如,如果要编写 SQL Server 登录脚本,或要将 SQL Server 登录从一台服务器移动到另一台,并且希望登录在服务器间具有相同的 SID 时。

[@encryptopt =] 'encryption_option'

指定当密码存储在系统表中时,密码是否要加密。encryption_option 的数据类型为 varchar(20),可以是下列值之一。

值 描述
NULL 加密密码。这是默认设置。
skip_encryption 密码已加密。SQL Server 应该存储值而且不用重新对其加密。
skip_encryption_old 已提供的密码由 SQL Server 较早版本加密。SQL Server 应该存储值而且不用重新对其加密。此选项只供升级使用。


返回代码值
0(成功)或 1(失败)

注释
SQL Server 登录和密码可包含 1 到 128 个字符,包括任何字母、符号和数字。但是,登录不能:

含有反斜线 (\)。


是保留的登录名称,例如 sa 或 public,或者已经存在。


为 NULL,或为空字符串 ('')。
如果提供默认数据库的名称,则不用执行 USE 语句就可以连接到指定的数据库。但是,不能使用默认的数据库,直到数据库所有者(使用 sp_adduser 或 sp_addrolemember)或 sp_addrole 授予对该数据库的访问权限为止。

SID 号是唯一的 Microsoft Windows NT® 用户标识号。必须保证每个用户的 SID 号在 Windows NT 域中的唯一性。SQL Server 自动使用 Windows NT SID 标识 Windows NT 用户和组,并为 SQL Server 登录生成一个 SID。

将登录添加到 SQL Server 时,如果密码已经是加密的形式,则使用 skip_encryption 取消密码加密是有用的。如果此密码由以前的 SQL Server 版本加密,则使用 skip_encryption_old。

不能从用户定义的事务中执行 sp_addlogin。

下表显示了几个与 sp_addlogin 一起使用的存储过程。

存储过程 描述
sp_grantlogin 添加 Windows NT 用户或组。
sp_password 更改用户密码。
sp_defaultdb 更改用户的默认数据库。
sp_defaultlanguage 更改用户的默认语言。


权限
只有 sysadmin 和 securityadmin 固定服务器角色的成员才可以执行 sp_addlogin。

示例
A. 创建没有密码和主默认数据库的登录 ID
下面的示例为用户 Victoria 创建一个 SQL Server 登录名,没有指定密码或默认数据库。

EXEC sp_addlogin 'Victoria'

B. 创建登录 ID 和默认数据库
此示例为用户 Albert 创建一个 SQL Server 登录,并指定密码 food 以及名为 corporate 的默认数据库。

EXEC sp_addlogin 'Albert', 'food', 'corporate'

C.创建使用其它默认语言的登录 ID
下面的示例为用户 Claire Picard 创建一个 SQL Server 登录名,密码为"caniche",默认数据库为 public_db,默认语言为 French。

EXEC sp_addlogin 'Claire Picard', 'caniche', 'public_db', 'french'

D. 创建带有特定 SID 的登录 ID
下面的示例为用户 Michael 创建一个 SQL Server 登录名,密码为"chocolate",默认数据库为 pubs,默认语言为 us_english,SID 为 0x0123456789ABCDEF0123456789ABCDEF。

EXEC sp_addlogin 'Michael', 'chocolate', 'pubs', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF

E. 创建登录 ID 并且不加密密码
下例在 Server1 上为用户 Margaret 创建了一个密码为"Rose"的 SQL Server 登录,再析取此加密密码,然后使用前面加密的密码将用户登录 Margaret 添加到 Server2,但不对此密码进一步加密。之后,用户 Margaret 即可使用密码"Rose"登录到 Server2。

-- Server1
EXEC sp_addlogin Margaret, Rose

--Results
New login created.

-- Extract encrypted password for Margaret
SELECT CONVERT(VARBINARY(32), password)
FROM syslogins
WHERE name = 'Margaret'

--Results
------------------------------------------------------------------
0x2131214A212B57304F5A552A3D513453

(1 row(s) affected)

-- Server2
EXEC sp_addlogin 'Margaret', 0x2131214A212B57304F5A552A3D513453,
@encryptopt = 'skip_encryption'


请参见

sp_addrole

sp_addrolemember

sp_adduser

sp_defaultdb

sp_defaultlanguage

sp_droplogin

sp_grantlogin

sp_helpuser

sp_password

sp_revokelogin

xp_logininfo

©1988-2000 Microsoft Corporation。保留所有权利。
Transact-SQL 参考


sp_password
添加或更改 Microsoft® SQL Server™ 登录的密码。

语法
sp_password [ [ @old = ] 'old_password' , ]
{ [ @new =] 'new_password' }
[ , [ @loginame = ] 'login' ]

参数
[@old =] 'old_password'

是旧密码。old_password 为 sysname 类型,其默认值为 NULL。

[@new =] 'new_password'

是新密码。new_password 为 sysname 类型,无默认值。如果没有使用命名参数,就必须指定 old_password。

[@loginame =] 'login'

是受密码更改影响的登录名。login 为 sysname 类型,其默认值为 NULL。login 必须已经存在,并且只能由 sysadmin 固定服务器角色的成员指定。

返回代码值
0(成功)或 1(失败)

注释
SQL Server 密码可包含 1 到 128 个字符,其中可包括任何字母、符号和数字。

新密码以加密的形式更新和存储,因此,任何用户(甚至系统管理员)都不能查看密码。

当 sysadmin 或 securityadmin 固定服务器角色的成员使用带全部三个参数的 sp_password 重新设置他们自己的密码时,审核记录反映的却是他们正在更改别人的密码。

sp_password 不能用于 Microsoft Windows NT® 安全帐户。通过 Windows NT 网络帐户连接到 SQL Server 的用户是由 Windows NT 授权的,因此其密码只能在 Windows NT 中更改。

sp_password 不能在用户定义的事务中执行。

权限
执行权限默认地授予 public 角色,以供用户更改自己的登录密码。只有 sysadmin 角色的成员可更改其他用户的登录密码。

示例
A.无原密码的情况下更改登录密码
下面的示例将登录 Victoria 的密码更改为 ok。

EXEC sp_password NULL, 'ok', 'Victoria'

B.更改密码
下面的示例将登录 Victoria 的密码由 ok 改为 coffee。

EXEC sp_password 'ok', 'coffee'


请参见

sp_addlogin

sp_adduser

sp_grantlogin

sp_revokelogin

系统存储过程

©1988-2000 Microsoft Corporation。保留所有权利。

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧