sql server中利用sql语句如何创建角色和用户

sql server中利用sql语句如何创建角色和用户,第1张

示例:

创建角色,用户,权限示例在数据库pubs中创建一个拥有表jobs的所有权限、拥有表titles的SELECT权限的角色p_test随后创建了一个登录a_test,然后在数据库pubs中为登录a_test创建了用户账户m_test同时将用户账户m_t

USE pubs

--创建角色 p_test

EXEC sp_addrole 'p_test'

--授予 p_test 对 jobs 表的所有权限

GRANT ALL ON jobs TO p_test

--授予角色 p_test 对 titles 表的 SELECT 权限

GRANT SELECT ON titles TO p_test

--添加登录 a_test,设置密码为pwd,默认数据库为pubs

EXEC sp_addlogin 'a_test','pwd','pubs'

--为登录 a_test 在数据库 pubs 中添加安全账户 u_test

EXEC sp_grantdbaccess 'a_test','m_test'

--添加 m_test 为角色 p_test 的成员

EXEC sp_addrolemember 'p_test','m_test'

--拒绝安全账户 m_test 对 titles 表的 SELECT 权限

DENY SELECT ON titles TO m_test

/*--完成上述步骤后,用 a_test 登录,可以对jobs表进行所有 *** 作,但无法对titles表查询,虽然角色 p_test 有titles表的select权限,但已经在安全账户中明确拒绝了对titles的select权限,所以a_test无titles表的select权限--*/

--从数据库 pubs 中删除安全账户

EXEC sp_revokedbaccess 'm_test'

--删除登录 a_test

EXEC sp_droplogin 'a_test'

--删除角色 p_test

EXEC sp_droprole 'p_test'

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

1.如何用sql语句添加数据库用户/密码?

2.如何用SQL语句修改数据库用户/密码?

谢谢!

解析:

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(失败)

--添加用户:

exec sp_addlogin ’’用户名’’,’’密码’’,’’默认数据库名’’

--添加到数据库

exec sp_grantdbaccess ’’用户名’’,’’数据库名’’

--权限

grant insert,select,update,delete on table1 to public


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10872314.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存