如何向 SQL Server 添加用户并设置用户权限

如何向 SQL Server 添加用户并设置用户权限,第1张

用户登录 id 与存储的过程 sp_addlogin 添加到 SQL Server。执行 sp_addlogin 权限只限于 SQL Server 系统管理员。

创建一个名 Userconn.prg,使用下面的代码的程序文件,请执行以下 *** 作:

LPARAMETER cDSN,cUserName,cUserPassWord

*!* Connect to SQL Server as a restricted access user.

hConnect=SQLCONNECT(cDSN,cUserName,cUserPassWord)

IF hConnect >0

cSQLCommand="SELECT * FROM PUBS.DBO.AUTHORS"

gnExec = SQLEXEC(hConnect, cSQLCommand,'MYCURSOR')

? cSQLCommand,gnExec

IF gnExec>0

SELECT mycursor

BROW

ENDIF

*!* Disconnect as restricted access user.

=SQLDISCONNECT(hConnect)

ELSE

=MESSAGEBOX("Connection failed",0,"Connection Error")

ENDIF

RETURN

创建一个名 Adduser.prg,使用下面的代码的程序文件,请执行以下 *** 作:

hConnect=SQLCONNECT(cDSN,cUserName,cUserPassWord)

IF hConnect >0

lUserExists=.F.

*!* Poll MASTER.DBO.SYSLOGINS for the NAME COLUMN.

cSQLCommand="SELECT NAME FROM MASTER.DBO.SYSLOGINS"

gnExec = SQLEXEC(hConnect, cSQLCommand,'SYSLOGS')

IF gnExec>0

SELECT syslogs

LOCA

SCAN FOR ALLTRIM(NAME)=ALLTRIM(cUserName)

lUserExists=.T.

EXIT

ENDSCAN

ENDIF

IF !lUserExists

*!* Select the PUBS database on SQL Server.

cSQLCommand="USE PUBS"

gnExec = SQLEXEC(hConnect,cSQLCommand)

*!* Add a new SQL Server Login ID cUserName.

*!* Access granted to the PUBS database.

cSQLCommand="EXEC sp_addlogin "+alltrim(cUserName)+"," +

alltrim(cUserPassWord)+",PUBS"

gnExec = SQLEXEC(hConnect, cSQLCommand)

*!* Grant privileges to user "cUserName".

cSQLCommand="GRANT SELECT ON pubs.dbo.authors " +

"TO "+cUserName

gnExec = SQLEXEC(hConnect, cSQLCommand)

gnCommit = SQLCOMMIT(hConnect)

ENDIF

*!* Disconnect as System Administrator.

=SQLDISCONNECT(hConnect)

ELSE

=MESSAGEBOX("Connection failed",0,"Connection Error")

ENDIF

RETURN

从命令窗口键入以下内容 (MyDsn 等于有效的 ODBC 数据源名称):

DO USERCONN WITH 'MyDsn','TEST','TEST'

出现以下错误消息:

失败的连接 SQL 状态:"28000"SQL Server 错误: 4002 [Microsoft] [ODBC SQL Server 驱动程序] [SQL Server] 登录失败

在命令窗口中键入以下 (MyDsn 等于有效的 ODBC 数据源名称):

DO ADDUSER WITH 'MyDsn','TEST','TEST'

在命令窗口中键入以下内容:

DO USERCONN WITH 'MyDsn','TEST','TEST'

一个游标,并使用 PUBS.DBO.AUTHORS 表中的数据将显示在一个浏览窗口。

1.在数据库本机用使用cmd指令调出命令行窗口,再用sqlplus/assysdba登录到数据库中。并且用对要赋权限的表所有者连接数据库,否则后续赋权限会失败。

2.创建由test123标识的用户测试创建密码设置为test123的测试用户。

3.授权测试用户的连接和资源权限。授予连接,资源到测试。

4.指定表授权查询权限。授予用户选择。表测试。

5.用新的登录数据库进行验证,我们会先尝试删除删除数据的功能,结果错误无法执行,说明我们添加的用户没有删除权限。

6.然后验证select查询函数,成功找到指定的数据。创建一个新用户并指定查询权限函数的实现。对于没有权限的表的查询也会被拒绝。

grant 权限 on 数据库对象 to 用户

例如 grant select on employee to user

给user这个用户对表employee的查询权限

grant all privileges on testdb to user

给user这个用户对数据库testdb 的所有权限


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

原文地址: http://outofmemory.cn/bake/11829394.html

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

发表评论

登录后才能评论

评论列表(0条)

保存