创建一个名 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 的所有权限
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)